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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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" <mirag@wanadoo.fr> a écrit dans le message de news:0c2f01c36719$0d551930$a501280a@phx.gbl...
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
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