cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 17 sept. 2010 à 17:23
Salut
En VBA pur, il n'y a pas de composant permettant de controler la saisie.
Mais tu peux très bien le faire avant de valider : En testant :
- la longueur du champ (4 ou 5 carctères seulement) --> Len
- la présence d'un : en position 2 ou 3 uniquement --> Instr
- que les chiffres à gauche du : sont compris entre 0 et 23 --> Mid, Val
- que les chiffres à droite du : sont compris entre 1 et 59 --> Mid, Val
Si, sur ta machine, tu as un fichier nommé %Windows%/System32/msmask32.ocx, tu peux le faire apparaitre dans ta barre d'outil VBA sous le nom "Microsoft Masked Edit Control version 6.0 (SP6)"
Lui te permettra de contrôler le format pendant la saisie.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
lmlmike
Messages postés22Date d'inscriptionmardi 17 août 2010StatutMembreDernière intervention 4 juin 2016 17 sept. 2010 à 17:32
J'ai déjà controlé la saisie via keypress :
Public Sub Text1_keypress(ByVal Keyascii As MSForms.ReturnInteger)
If InStr("1234567890.", Chr(Keyascii)) = 0 _
Or InStr(text1.Value, ".") <> 0 And Chr(Keyascii) = "." Then
Keyascii = 0: Beep
End If
End Sub
Pour n'avoir que des chiffres et éviter le plantage. Maintenant avec tes conseils je suis capable de contrôler le temps ;)