Avatar billede manutddp Nybegynder
29. april 2015 - 11:28 Der er 7 kommentarer og
1 løsning

VBA kode til 2 decimaler

Hej

Jeg har en brugerformuler, hvor man indtaster timer. Jeg vil gerne have således, at den kun accepterer 2 decimaler. Nogle der kan hjælpe?



If IsNumeric(txtTimer.Text) = False Then
        MsgBox "Timer/dage ikke indtastet korrekt"
        txtTimer.SetFocus
        Exit Sub
End If
Avatar billede jens48 Ekspert
29. april 2015 - 11:41 #1
Prøv med denne:

If and(IsNumeric(txtTimer.Text) = False,Len(Split(txtTimer.Text & ",", ",")(1)) >2)Then
        MsgBox "Timer/dage ikke indtastet korrekt"
        txtTimer.SetFocus
        Exit Sub
End If
29. april 2015 - 11:41 #2
Kan du bruge denne

Function antaldec(c)
    If IsNumeric(c) Then
        Dim d As Double
        d = CDbl(c)
        If InStr(1, CStr(d), ",") = 0 Then
            antaldec = 0
        Else
            antaldec = Len(CStr(d)) - InStr(1, CStr(d), ",")
        End If
    End If
End Function
Avatar billede manutddp Nybegynder
29. april 2015 - 11:48 #3
jens 48 - der kommer desværre en compile error - syntex error
Avatar billede manutddp Nybegynder
29. april 2015 - 11:59 #4
Hej Thor

Tak jeg bruger nok di forslag forkert, for jeg får også en syntx error. Se nederst af det jeg har kopieret ind, hvad er forkert?


If IsDate(txtDato.Text) Then
        txtDato.Text = Format(CDate(txtDato.Text), "dd-mm-yyyy")
        dato = txtDato
    Else
        MsgBox "Datoformat skal være dd-mm-yyyy"
        txtDato.SetFocus
        Exit Sub
End If

If lstType = "" Then
    MsgBox "Type ikke udfyldt korrekt"
    lstType.SetFocus
    Exit Sub
End If

Function antaldec(txtTimer.Text)
    If IsNumeric(txtTimer.Text) Then
        Dim d As Double
        d = CDbl(txtTimer.Text)
        If InStr(1, CStr(d), ",") = 0 Then
            antaldec = 0
        Else
            antaldec = Len(CStr(d)) - InStr(1, CStr(d), ",")
        End If
    End If
End Function
Avatar billede jens48 Ekspert
29. april 2015 - 12:36 #5
Ja, jeg fik skrevet den lidt forkert. Prøv denne:

If IsNumeric(txtTimer.Text) = False or Len(Split(txtTimer.Text & ",", ",")(1)) >2 then
        MsgBox "Timer/dage ikke indtastet korrekt"
        txtTimer.SetFocus
        Exit Sub
End If
Avatar billede finb Ekspert
29. april 2015 - 12:54 #6
Men skal der indtastes som hh:mm (13:45)
eller
som decimal-tal (12,5 = 12:30) ?
Avatar billede manutddp Nybegynder
29. april 2015 - 13:21 #7
Hej Jens

Super det virker fint - tak for hjælpen :-) Smider du et svar
Avatar billede jens48 Ekspert
29. april 2015 - 13:24 #8
Du får et svar
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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