Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Problème de setfocus

  • Initiateur de la discussion Initiateur de la discussion blord
  • 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 !

blord

XLDnaute Impliqué
Bonjour à tous,

Je veux utiliser le code suivant pour la saisie d'heure dans un textbox (merci aux collaborateurs du forum pour le code) :

Private Sub TextBox2_AfterUpdate()
'Transforme les 4 chiffres saisie dans le textbox en format 00:00
'Ne s'applique que si le TextBox contient 4 caractères - Si plus ou moins alors vide le TextBox
TextBox2 = IIf(Len(TextBox2) = 4, Mid(TextBox2, 1, 2) & ":" & Mid(TextBox2, 3, 2), vbNullString)

'Valide que la saisie dans le textbox est une heure valide
If Not IsDate(Format(TextBox2, "hh:mm")) Then
MsgBox "Heure invalide"
TextBox2.Value = ""
TextBox2.SetFocus
End If
End Sub

Mon problème se situe au niveau du setfocus, si l'heure est invalide, il vide bien le textbox mais le focus va automatiquement sur le prochain contrôle alors que j'aimerais qu'il se fasse sur le textbox en erreur.

Merci à tous !

Benoit Lord
 
Re : Problème de setfocus

Bonjour Blord le forum
j'ai déjà eu un truc du genre ou tout le monde me disait mets seulement setfocus et c'est bon et cela ne marchait pas de mémoire j'avais fait un userform.hide suivi immédietement d'un userform.show et cela avait réglé le problème
tu peux toujours essayer
a+
Papou
 
Re : Problème de setfocus

Bonjour Benoit, Papou

essaye peut être en mettant ton code dans l'événement "Exit" :

Code:
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Transforme les 4 chiffres saisie dans le textbox en format 00:00
'Ne s'applique que si le TextBox contient 4 caractères - Si plus ou moins alors vide le TextBox
TextBox2 = IIf(Len(TextBox2) = 4, Mid(TextBox2, 1, 2) & ":" & Mid(TextBox2, 3, 2), vbNullString)
'Valide que la saisie dans le textbox est une heure valide
If Not IsDate(Format(TextBox2, "hh:mm")) Then
    MsgBox "Heure invalide"
    TextBox2.Value = ""
    Cancel = True
End If

bonne fin d'après midi
@+

Edition : erreur dans le nom du textbox...
 
Dernière édition:
Re : Problème de setfocus

Bonjour Pierrot,Blord, le forum
la dernière fois même toi tu n'avais pas trouvé le pourquoi de mon souci et pourtant, tu connais ton truc par coeur, moi j'avais bidouillé pour m'en sortir mais la raison je ne la connait toujours pas
pour Blord ta macro marchera surement.
BONNE ANNEE 2009
a+
Papou
 
Re : Problème de setfocus

Re Pierrot,Blord,
Non c'était pas en cours de macro c'était a l'initialisation de mon user et malgré le userform_initialyse etc etc je n'y était pas arrivé et lors d'une erreur (elle sont nombreuses chez moi) j'avais rajouté userform.hide et là c'était bon.
Pour le fil c'est vieux je ne sais plus quand
bonne annee a tou
a+
Papou
 
Re : Problème de setfocus

Bonjour à tous,

Dans mon cas, le code de Pierrot93 fonctionne à la perfection !

Merci à tous pour vos suggestions et une bonne année 2009 à vous et aux gens du forum...

Benoit Lord
 
- 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
Réponses
6
Affichages
3 K
R
M
Réponses
3
Affichages
2 K
MONADESIGN82
M
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…