TextBox au format horaire

  • Initiateur de la discussion Initiateur de la discussion koukou40
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

koukou40

XLDnaute Occasionnel
Bonjour à Tous !

J'ai un petit problème de format horaire dans des TextBox. En effet, dans ceux-ci je dois saisir des horaires (ex. 10,75) en centième d'heures.
Mes questions :
1- Comment "formater" ces TextBox au bon format ?
2- Comment avertir l'utilisateur que la saisie est uniquement au format horaire ?
3- Comment utiliser la virgule du pavé numérique ?

Si vous avez une réponse, je suis preneur...🙂

Cordialement,
 
Re : TextBox au format horaire

Bonjour,

Les horaires sont en 100 ème

ex :10,75
(prévoir le cas où qq'un tape un point, suivant les paramètres régionaux !)

le plus simple, c'est de mettre un exemple à coté du textbox

après utiliser split avec , ou . comme "éclateur"

et un contrôle des caractères autorisés de 0 à 9

une sub à adapter pour faire un contrôle des caractères autorisés ...

Code:
Sub ControleDesCaracteres(texteSaisi, drapeau)
'renvoi 1 au drapeau si caractère interdit
'utiliser le 1 pour renvoyer sur le userform
For i = 1 To Len(texteSaisi)
  Select Case Mid(texteSaisi, i, 1)
    Case Is = "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
    'tout va bien
    Case Is = ",", "."
     'tout va bien
    Case Else
      MsgBox "Caractère " + Mid(texteSaisi, i, 1) + " non autorisé"
         drapeau = 1
  End Select
Next i
End Sub
 
Dernière modification par un modérateur:
Re : TextBox au format horaire

Bonsoir à tous


Une autre solution avec Like

Code:
Private Sub TextBox1_AfterUpdate()
If TextBox1.Text Like "#,##" Or TextBox1.Text Like "##,##" Then
MsgBox "Saisie valide"
Else
MsgBox "Saisie non valide"
End if
End Sub
 
Dernière édition:
Re : TextBox au format horaire

bonjour Koukou,Staple,TheCat
'remplace le point par une virgule
Private Sub TextBox4_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 46 Then KeyAscii = 44
End Sub

virgule valide
Private Sub textBox1_Change()
On Error Resume Next

If Not IsNumeric(Right(TextBox1, 1)) And Right(TextBox1, 1) <> "," Then
MsgBox "Le caractere saisi n'est pas valide"
TextBox1 = Left(TextBox1, Len(TextBox1) - 1)
End If
End Sub
à bientôy
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
1 K
  • Question Question
Microsoft 365 Format heure
Réponses
11
Affichages
2 K
Réponses
3
Affichages
3 K
Retour