TextBox au format horaire

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,
 
T

THE CAT 2007

Guest
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:

Staple1600

XLDnaute Barbatruc
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:

Bebere

XLDnaute Barbatruc
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
 

Discussions similaires

  • Question
Microsoft 365 Format heure
Réponses
11
Affichages
2 K

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz