Avatar billede sysus Nybegynder
17. juni 2002 - 23:28 Der er 6 kommentarer og
1 løsning

Format på listebokse i brugerformular

Hej alle

Jeg er i gang med at lave en brugerformular i et stort regneark, hvor der skal beregnes timer ud fra angivelse af klokkeslæt.
Jeg har oprettet i alt 6 tekstbokse, hvor formatet skal være klokkeslet, men det skulle gerne være sådan, at brugeren ikke selv skal skrive kolonet. Det gør de i det nuværende regneark, og det er det, som jeg skal "effektivisere". Jeg har søgt alle mulige steder, man kan ikke finde hjælp. Så please!!!!!

Når jeg står i VBA, dobbeltklikker jeg på min tekstboks og så........................................
Med håb om hurtigt svar
Sysus
18. juni 2002 - 08:40 #1
Her indsættes kolon når feltet forlades:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    With TextBox1
        .Text = Left(.Text, 2) & ":" & Mid(.Text, 3, 2) & ":" & Right(.Text, 2)
    End With
End Sub

Her sikre at der kun kan indtastes tal - og kun 6 stk.

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If KeyAscii > 47 And KeyAscii < 58 Then
        If Not (Len(TextBox1.Text) < 7) Then
            KeyAscii = 0
        End If
    Else
        KeyAscii = 0
    End If
End Sub

Koden tager ikke højde for de tilfælde, hvor brugeren indtaster mindre end 6 karakter. God fornøjelse
Avatar billede sysus Nybegynder
18. juni 2002 - 08:49 #2
Tak for det Flemming
Jeg kan desværre først afprøve det sidst på eftermiddagen, når jeg er kommet hjem.
18. juni 2002 - 08:53 #3
God fornøjelse
Avatar billede sysus Nybegynder
18. juni 2002 - 18:01 #4
Hej Flemming

Jeg har afprøvet den første kode og den ser ud til at virke når jeg fjerner
& ":" & Mid(.Text, 3, 2), idet feltet kun skal angive timer og min.

Jeg er lidt bange for, at der evt. ikke kan forudsættes, at indholdet er mindre end 23:00 og at jeg så i den tilsvarende næste box kan sikre mig, at indtastningen er et senere tidspunkt, end det første.
Er der problemer med det, eller skal jeg stille det spørgsmål senere, når jeg er kommet så langt?

Med venlig hilsen
Susanne
Avatar billede sysus Nybegynder
18. juni 2002 - 22:58 #5
Hej Flemming

Med din hjælp og min mands (som du jo kender Per på Arla i Hobro)
er opgaven løst, så du får dine velfortjente points.

Jeg håber på positivt samarbejde fremover.

Med venlig hilsen

Susanne
Avatar billede sysus Nybegynder
18. juni 2002 - 22:59 #6
En ekstra bemærkning.

Her er min løsning:

Private Sub cmdOK_Click()
With txtRutestart

If Val(Left(.Text, 2)) > 23 Then
    MsgBox "Der er indtastet forkert tid"
    .SetFocus
End If

If Val(Right(.Text, 2)) > 59 Then
    MsgBox "Der er indtastet forkert tid"
    .SetFocus
End If
End With


End Sub

Private Sub txtRutestart_Exit(ByVal Cancel As MSForms.ReturnBoolean)
With txtRutestart
        .Text = Left(.Text, 2) & ":" & Right(.Text, 2)
    End With

End Sub
19. juni 2002 - 08:35 #7
Hej Susanne - Du må endlig hilse Per :-)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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