Avatar billede RDAF-DD Novice
10. april 2019 - 10:01 Der er 6 kommentarer og
1 løsning

Konverter tekst til tal ved brug at tekstbokse i en userform

Hejsa.

Jeg er rimelig ny i VBA, men sidder og roder med forskellige ark og udforsker mulighederne i VBA. Som regel kan en google søgning afklare de fleste problemer, men her har jeg brug for eksperthjælp.

Jeg har lavet en userform i vba med nogle tekstbokse hvor jeg indtaster tal, og kun tal. Men når jeg overfører de værdier til selve arket/databasen er de angivet som tekst og jeg skal herefter selv aktivt konverterer dem til tal.

en typisk tekstbox linje i mit setup ser således ud

Sheets("Bets").Range("Data_start").Offset(targetrow, 8).Value = txt_indskud

Data_start er bare en ref box jeg placerer efter, targetrow tæller linjer og placerer på den næste.

Derudover må alle tal gerne have 2 decimaler. Så hvis jeg f.eks bare skriver 1,7 i userform tekstboksen at den konverterer det til 1,70 i arket
Jeg tænker det sikkert er forholdsvis nemt. Jeg kan bare ikke finde ud af hvordan :)
Avatar billede Jan Hansen Ekspert
10. april 2019 - 10:40 #1
Hejsa

Sub test() ' Ændres til din sub's navn
    ' Variable
    Dim ws As Worksheets 'Ark variabel
    Dim rCell As Range 'Celle variabel
    ' Her under tildeles placering til variablene
    Set ws = Sheets("Bets")
    Set rCell = Range("Data_start")
    '----------//-------------
   
    ' Her under din kode i 3 versioner
    ' 1.
    Sheets("Bets").Range("Data_start").Offset(targetrow, 8).Value = Format(txt_indskud, "#,00")
    ' 2.
    rCell.Offset(targetrow, 8).Value = Format(txt_indskud, "#,00")
   
    ' 3.
    'eller ved mange aflæsninger
    With rCell
        .Offset(targetrow, 8).Value = Format(txt_indskud, "#,00")
        '.Offset(targetrow, 9).Value = Format(txt_xx, "#,00")
        ' osv
   
    End With
    ' Vælg den der virker mest overskulig for dig, de to sidste kræver varable
End Sub


Jan
Avatar billede RDAF-DD Novice
10. april 2019 - 22:27 #2
Jeg kan ikke umiddelbart få det til at virke. Måske jeg laver en fejl i forhold til det du mener. Så her er den fulde kode til kommandoknappen. Den kommer med fejlen type mismatch ved linjen  Set ws = Sheets("Bets"). Kun de sidste to linjer skal konverteres til tal

Private Sub cmd_next_Click()

Dim ws As Worksheets 'Ark variabel
    Dim rCell As Range 'Celle variabel
    ' Her under tildeles placering til variablene
    Set ws = Sheets("Bets")
    Set rCell = Range("Data_start")

Dim targetrow As Integer

targetrow = Sheets("Engine").Range("b3").Value + 1

Sheets("Bets").Range("Data_start").Offset(targetrow, 0).Value = combo_day
Sheets("Bets").Range("Data_start").Offset(targetrow, 1).Value = combo_month

Sheets("Bets").Range("Data_start").Offset(targetrow, 2).Value = txt_start & ":" & txt_minut

If ob_pre = True Then

Sheets("Bets").Range("Data_start").Offset(targetrow, 3).Value = "Pre"

Else

Sheets("Bets").Range("Data_start").Offset(targetrow, 4).Value = "Live"

End If

Sheets("Bets").Range("Data_start").Offset(targetrow, 5).Value = combo_sport
Sheets("Bets").Range("Data_start").Offset(targetrow, 6).Value = lbox_liga
Sheets("Bets").Range("Data_start").Offset(targetrow, 7).Value = lbox_home & " " & "-" & " " & lbox_away
Sheets("Bets").Range("Data_start").Offset(targetrow, 8).Value = txt_udfald
Sheets("Bets").Range("Data_start").Offset(targetrow, 9).Value = Format(txt_odds, "#,00")
Sheets("Bets").Range("Data_start").Offset(targetrow, 10).Value = Format(txt_indskud, "#,00")

End Sub
Avatar billede Jan Hansen Ekspert
10. april 2019 - 22:56 #3
Prøv om følgende kode ikke virker elles upload fil til dropbox eller lignende

Option Explicit

Private Sub cmd_next_Click()

    Dim ws As Worksheets 'Ark variabel
    Dim rCell As Range 'Celle variabel
    Dim targetrow As Integer
    ' Her under tildeles placering til variablene
    Set ws = Sheets("Bets")
    Set rCell = Range("Data_start")

    targetrow = Sheets("Engine").Range("b3").Value + 1
   
    rCell.Offset(targetrow, 0).Value = combo_day
    rCell.Offset(targetrow, 1).Value = combo_month
   
    rCell.Offset(targetrow, 2).Value = txt_start & ":" & txt_minut
   
    If ob_pre = True Then
   
        rCell.Offset(targetrow, 3).Value = "Pre"
       
    Else
       
        rCell.Offset(targetrow, 4).Value = "Live"
   
    End If
   
    rCell.Offset(targetrow, 5).Value = combo_sport
    rCell.Offset(targetrow, 6).Value = lbox_liga
    rCell.Offset(targetrow, 7).Value = lbox_home & " " & "-" & " " & lbox_away
    rCell.Offset(targetrow, 8).Value = txt_udfald
    rCell.Offset(targetrow, 9).Value = Format(txt_odds, "#,00")
    rCell.Offset(targetrow, 10).Value = Format(txt_indskud, "#,00")

End Sub
Avatar billede RDAF-DD Novice
11. april 2019 - 15:12 #4
https://drive.google.com/open?id=1vzrbFoXwnx4yBThYVqi8g1T1sqsRhUn8

Her er arket. Den laver samme fejl som sidst.

Tusind tak fordi du gider at bruge tid på at hjælpe mig :)
Avatar billede Jan Hansen Ekspert
11. april 2019 - 17:08 #5
Hej

Har lige renset lidt ud og måtte kopiere det over i en ny fil, da den gamle fejlede, men nu burde den virke.

https://1drv.ms/x/s!AmlqgsyjsAq5hZdaGesIyvi5IC0CVw

Jan
Avatar billede Jan Hansen Ekspert
11. april 2019 - 17:14 #6
Avatar billede RDAF-DD Novice
11. april 2019 - 22:01 #7
Det virker. Jeg skal nok lige bruge lidt tid til at forstå sammensætningen, så jeg også trækker lidt læring med herfra.

Mange tak for din tid. Det har jeg rodet med i en hel del timer uden held :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Stort udvalg af Excel kurser til alle niveauer og jobfunktioner

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





White paper
Sådan: Opgradér din printerløsning uden store investeringer