• 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.

Limiet instellen voor de invoer van een textbox

Status
Niet open voor verdere reacties.

willie76

Gebruiker
Lid geworden
6 nov 2010
Berichten
124
Forumleden,

Ik zou graag een numerieke limiet willen instellen voor een textbox3 op mn formulier.

Zelf dacht ik aan:
Code:
Private Sub TextBox3_LostFocus()
If TextBox3.Value <> "" And Not IsNumeric(TextBox3) Then
    MsgBox "Vul een geldig Microsectienummer in"
ElseIf TextBox3.Value > 999999 Or TextBox3.Value < 100000 Then
    MsgBox "Een geldig Microsectienummer bestaat uit 6 cijfers !!!"
End If
End Sub

Maar dat lijkt niks te doen, althans ik krijg geen meldingen terug bij een "foutieve" invoer.

Heeft iemand een oplossing ???

Bedankt
 
Helpt dit een beetje vooruit?

Code:
Private Sub TextBox3_AfterUpdate()
If Me.TextBox3.Value <> "" And Not IsNumeric(Me.TextBox3) Then
    MsgBox "Vul een geldig Microsectienummer in"
ElseIf Me.TextBox3.Value > 999999 Or Me.TextBox3.Value < 100000 Then
    MsgBox "Een geldig Microsectienummer bestaat uit 6 cijfers !!!"
    Me.TextBox3 = ""
    End If
End Sub
 
Code:
Private Sub TextBox3_AfterUpdate()
    If Not TextBox3.Value Like "######" Then
        MsgBox "Een geldig Microsectienummer bestaat uit 6 cijfers !!!"
        TextBox3.Value = vbNullString
    End If
End Sub

Wil je de invoer beperken tot enkel cijfers gebruik je deze erbij
Code:
Private Sub TextBox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Select Case KeyAscii
        Case Is <= 47: KeyAscii = 0
        Case 48 To 57: 'numbers 0 to 9
        Case 58 To 122: KeyAscii = 0
        Case Else: KeyAscii = 0
    End Select
End Sub
 
Laatst bewerkt:
Bedankt Rudi en Cobbe,

Uiteindelijk heb ik voor de oplossing van Rudi gekozen, maar die van Cobbe werkte ook.......
De oplossing van Rudi was al meer dan waar ik om gevraagd had, maar een invoer van nummers alleen is een top-aanvulling.....

Beiden heel erg bedankt
 
...toch nog een aanvullende vraag op bovenstaande antwoorden.

Met een bereik van 6 cijfers werkt onderstaande code perfect:
Code:
Private Sub TextBox3_AfterUpdate()
    If Not TextBox3.Value Like "######" Then
        MsgBox "Een geldig Microsectienummer bestaat uit 6 cijfers !!!"
        TextBox3.Value = vbNullString
    End If
End Sub

....maar nu blijkt dat er ook 4 nummers ingevuld moeten kunnen worden.

Hoe moet ik bovenstaande code aanpassen zodat zowel nummers met 4 EN 6 cijfers zijn toegestaan en andere combi's dus niet ????

Alvast bedankt voor de hulp
 
Code:
Private Sub TextBox3_AfterUpdate()

    If Len(Trim(TextBox3.Text)) < 4 Or Len(Trim(TextBox3.Text)) > 6 Then MsgBox "Een geldig Microsectienummer bestaat uit 4 of 6 cijfers !!!": TextBox3.Value = vbNullString: Exit Sub
    If Len(Trim(TextBox3.Text)) = 5 Then MsgBox "Een geldig Microsectienummer bestaat uit 4 of 6 cijfers !!!": TextBox3.Value = vbNullString: Exit Sub
    
End Sub
 
Thx Rudi,

Ik zal de code uitproberen. Als ie werkt, zet ik de status weer op opgelost.

Thx
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan