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

VBA input valideren (en intelligentie toevoegen)

Status
Niet open voor verdere reacties.

lemonstreet25

Gebruiker
Lid geworden
27 sep 2016
Berichten
52
Dames en Heren,
hartelijk dank! Ik kom steeds verder. Nu wil ik de input valideren. D.w.z. als ik nu invoer in Textbox2 "12-96" ziet VBA daar een datum in; namelijk 01-12-1996. Hoe kan ik afdwingen dat er conform format "dd-12-yyyy" wordt ingevoerd? En hoe kan ik voorwaarden stellen als bijv:
•Invoerdatum moet na "01-01-2000" vallen ?
•Textbox2 datum moet groter zijn dan Textbox1 datum?


Met uw welnemen tevens de vraag hoe ik de cursor na foutmelding (msgbox) in de juiste textbox krijg. Setfocus in onderstaande code helpt niet.


Code:
Code:
Private Sub TextBox2_AfterUpdate()
     If IsDate(TextBox2.Value) Then
        TextBox2 = Format(TextBox2, "dd-mm-yyyy")
        TextBox2.BackColor = rgbWhite
    Else
        TextBox2.BackColor = rgbPink
        MsgBox ("Please Enter a Vaid Date")
        TextBox2.SetFocus
        Exit Sub
    End If
End Sub
Bekijk bijlage 315345
 
Laatst bewerkt door een moderator:
Probeer het zo eens:
Code:
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
[COLOR="#008000"]'Private Sub TextBox2_AfterUpdate()[/COLOR]
     If IsDate(TextBox2.Value) Then
        TextBox2 = Format(TextBox2, "dd-mm-yyyy")
        TextBox2.BackColor = rgbWhite
    Else
        TextBox2.BackColor = rgbPink
        MsgBox ("Please Enter a Vaid Date")
        Cancel = True
        [COLOR="#008000"]'Exit Sub[/COLOR]
    End If
End Sub
 
of zo
Code:
Private Sub TextBox2_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
  If Not IsDate(TextBox2.Value) Or Len(TextBox2.Text) < 8 Then
    TextBox2.BackColor = rgbPink
    MsgBox ("Please Enter a Vaid Date"), vbCritical
    Cancel = True
  Else
    TextBox2.BackColor = rgbWhite
    TextBox2 = CDate(TextBox2.Value)
  End If
End Sub
 
Laatst bewerkt:
Gebruik een combobox met geldige datumwaarden.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan