Humm TextBox1_LostFocus....
Nel caso che non funzioni:
- Codice: Seleziona tutto
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsDate(TextBox1.Value) Then
MsgBox ("Errore, data non valida: " & TextBox1.Value)
TextBox1.Text = ""
Cancel = True
End If
End Sub
o una delle varianti simili.
Opzionalmente puoi usare, in aggiunta o in sostituzione:
- Codice: Seleziona tutto
Private Sub TextBox1_Change()
'Controls("TextBox2").Enabled = False '<<< NOTA **
If IsDate(TextBox1.Value) Then
TextBox1.BackColor = RGB(0, 250, 0)
' TextBox2.Text = Format(TextBox1.Text, "yyyy-mmm-dd")
Else: TextBox1.BackColor = RGB(250, 0, 0)
' TextBox2.Text = "Data non valida"
End If
End Sub
Questa colora in verde o rosso Textbox1 se la data e' valida o meno; scommentando le tre istruzioni potresti anche vedere in TextBox2 (che deve esistere..) a quale data l' input corrisponde.
**Usando TextBox2 l' istruzione marcata <<< e' meglio se la metti nel codice di attivazione della userform.
Ciao.