Contrôle de saisie sur un renvoi d'erreur

Résolu
lmlmike Messages postés 22 Date d'inscription mardi 17 août 2010 Statut Membre Dernière intervention 4 juin 2016 - 17 sept. 2010 à 16:57
lmlmike Messages postés 22 Date d'inscription mardi 17 août 2010 Statut Membre Dernière intervention 4 juin 2016 - 17 sept. 2010 à 17:32
Hello :)

Je cherche en VBA a gérer la saisie pour une textbox.

La personne doit rentrer une valeur au format hh:mm pour le formater sur cdate() et le déduire d'une cellule au même format.

Vous avez une idée de comment s'y prendre ?

Merci :)

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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)
3
lmlmike Messages postés 22 Date d'inscription mardi 17 août 2010 Statut Membre Derniè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 ;)

Merci beaucoup !
0
Rejoignez-nous