Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Controle saisie heure

1 réponse
Avatar
Mireille
Bjr et bonne reprise,
Pb tout simple pour les super que vous etes : Dans une=20
zone de saisie d'un userform je veux faire saisir des=20
heures et refuser toute saisie "non horaire" donc=20
differente de hh :mm. Est ce que le test de isdate peut=20
m'apporter quelque chose ou que faut-il faire ?
Merci =E0 toutes et tous

1 réponse

Avatar
michdenis
Bonjour Mireille,

Voici 2 procédures.

La première sub est suffisante pour obliger un format particulier à ton contrôle Textbox

Le format obligatoire est : HH:MM

AU MOINS 2 chiffres pour désignier les heures , mais ce peut être plus ...
et 2 chiffres pour désigner les minutes.
La saisie accepte : 1255:57 , 02:46

La saisie refuse : 2:45 , 02:65 (le 6 est incorrect)

à toi de définir la chaîne désirée en modifiant ceci :
If Me.TextBox1 Like "[0-9]*[0-9][:][0-5][0-9]" Then


La deuxième sub, est une "Aide" qui limite l'usager à l'utilisation de certains caractères lors de la saisie.
C'est une "option" ;-))

Évidemment, ce code est à copier dans ton module formulaire , tu dois aussi adapter le nom du textbox selon ton application.
'-----------------------
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

If Me.TextBox1 <> "" Then
If Me.TextBox1 Like "[0-9]*[0-9][:][0-5][0-9]" Then
Else
MsgBox "Le format est le suivant : 05:56 "
Me.TextBox1.SelStart = 0
Me.TextBox1.SelLength = Len(Me.TextBox1)
Cancel = True
End If
End If

End Sub

'-----------------------
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Dim A As Integer

If Len(TextBox1) = 0 And KeyAscii = 58 Then
KeyAscii = 0
End If

If KeyAscii = 58 Then
If InStr(1, Me.TextBox1, ":", vbTextCompare) <> 0 Then
KeyAscii = 0
End If
End If

If Right(Me.TextBox1, 1) = ":" Then
If KeyAscii < 48 Or KeyAscii > 53 Then
KeyAscii = 0
End If
End If

If KeyAscii < 48 Or KeyAscii > 58 Then
KeyAscii = 0
End If

End Sub
'-----------------------


Salutations!



"Mireille" a écrit dans le message de news:0c2f01c36719$0d551930$
Bjr et bonne reprise,
Pb tout simple pour les super que vous etes : Dans une
zone de saisie d'un userform je veux faire saisir des
heures et refuser toute saisie "non horaire" donc
differente de hh :mm. Est ce que le test de isdate peut
m'apporter quelque chose ou que faut-il faire ?
Merci à toutes et tous