• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Userform met 6 textboxen

Status
Niet open voor verdere reacties.

Bolle g

Gebruiker
Lid geworden
19 dec 2007
Berichten
6
Ik zit met een probleem, volgende code krijg ik niet uitgevoerd, wat zou het probleem zijn ?
Ik heb een userform met 6 textboxen.
Als ik in de eerste textbox een verkeerd geg ingeef moet de code de input verwijderen en terug de focus op de eerste textbox zetten.
De code ziet er als volgt uit :
Code:
Private Sub Invoervak1_AfterUpdate()

    Dim sValue As String
    
    sValue = frmuser.Invoervak1.Text
If sValue <> 50 Then
    MsgBox "Dit is niet het juiste getal"
    frmuser.Invoervak1.Text = ""
    frmuser.Invoervak1.SetFocus
    GoTo regel1000
ElseIf sValue = 50 Then
    frmuser.Invoervak2.SetFocus
End If

regel1000:
End Sub
Probleem is dat de focus niet op eerste textbox terug keert, hij springt naar de 2de of de 3de.
Is uitgevoerd in Excel2003.
Graag Uw mening of hulp.

Bolle g
 
Laatst bewerkt door een moderator:
probeer sowieso GoTo's (zoals in "GoTo regel1000") te verkomen. Je kan hier net zo goed "Exit Sub" gebruiken. Is ook wel zo duidelijk voor een buitenstaander.

Ik denk dat een ander 'event' ervoor zorgt dat de focus alsnog verspringt naar een ander tekstveld. Ik zal eens verder graven...;)
 
Ik heb Office2007 dus ik weet niet of dit bij jou werkt, maar het Exit event lijkt wel prima te werken:
Code:
Private Sub Invoervak1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Dim sValue As String

    sValue = frmuser.Invoervak1.Text
    If sValue <> 50 Then
        MsgBox "Dit is niet het juiste getal"
        frmuser.Invoervak1.Text = ""
        frmuser.Invoervak1.SetFocus
        Cancel = True
        Exit Sub

    ElseIf sValue = 50 Then
        frmuser.Invoervak2.SetFocus

    End If

End Sub
 
Het werkt inderdaad in 2003 ook.
Dat is de oplossing, dank voor de hulp.
Bolle g
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan