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

Forcer le SETFOCUS

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

herve62

XLDnaute Barbatruc
Bonjour
Ce n'est pas la 1ére fois , mais d'habitude le code de la box s'arrête donc j'ai pas le soucis
Ici dans l'exemple le code doit continuer
En fait au début je traite la validité d'une date , si Erreur on efface et remet le curseur dans la box
Mais le SETFOCUS n'a pas l'air d'agir ,
Code:
Private Sub TextBox1_AfterUpdate()
If Not IsDate(TextBox1.Value) Then
        MsgBox "Format incorrect > jj/mm/aaaa" & (Chr(10) & Chr(13)) & "Ou Date non valide.."
        TextBox1.Value = ""
        TextBox1.SetFocus
End If
Tr = 0
date_P = CDate(TextBox1.Value)

Donc en cas d'erreur , j'ai le message mais ensuite Erreur sur date_P ,car ne redemande pas une nouvelle date


Quelle est la bonne méthode que je garde une fois pour toute ?
Merci
 
Re : Forcer le SETFOCUS

bonjour hervé,
as tu essayé avec un do...while ?
Code:
do while dt=false
   If Not IsDate(TextBox1.Value) Then
        MsgBox "Format incorrect > jj/mm/aaaa" & (Chr(10) & Chr(13)) & "Ou Date non valide.."
        TextBox1.Value = ""
        TextBox1.SetFocus
        dt=false
   else:
        dt=true
   End If
loop
je ne maitrise pas trop encore ce type de fonction mais sur le papier, ça peut répondre à ton besoin
j'ai fais un essais avec un range et ça fonctionne chez moi
à+
 
Re : Forcer le SETFOCUS

et avec un "enter" ?
Code:
dim txt1 as bolean
Private Sub TextBox1_Enter()
If Not IsDate(TextBox1.Value) Then
        MsgBox "Format incorrect > jj/mm/aaaa" & (Chr(10) & Chr(13)) & "Ou Date non valide.."
        TextBox1.Value = ""
        TextBox1.SetFocus
Else:
   txt1=true
End If
end sub
la variable "txt1" est à récupérer pour la suite de ton besoin
à+
 
Re : Forcer le SETFOCUS

Bonjour le fil, bonjour le forum

Voilà ce que dis l'aide VBA :
L'événement AfterUpdate se produit après l'événement BeforeUpdate et avant l'événement Exit pour le contrôle actif et avant l'événement Enter pour le contrôle suivant dans l'ordre de tabulation

Donc le focus est toujours dans la TextBox. Comme Bernard, je préconise l'événement BeforUpdate voire même Exit...

[Édition]
Peut-être comme ça :
Code:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsDate(TextBox1.Value) Then
        Cancel = True
        MsgBox "Format incorrect > jj/mm/aaaa" & (Chr(10) & Chr(13)) & "Ou Date non valide.."
        TextBox1.Value = ""
        Exit Sub
End If
Tr = 0
date_P = CDate(TextBox1.Value)
End Sub
 
Dernière édition:
Re : Forcer le SETFOCUS

SLT Robert
Là avec ton code ça fonctionne très bien, mais bizarre en + de 10ans j'ai jamais utilisé ce type de Sub !!!
Il subsiste un petit hic !!! , si après erreur je décide de quitter ( bouton ANNULER) , le MSGBOX persiste ???

PS: Je change d'hosto , je quitte Lille à 14H pour un Hosto sur St omer ( encore 10 jours) et je devrais aussi avoir WIFI mais je verrai , Si je ne réponds plus vous saurez pourquoi !!
 
Re : Forcer le SETFOCUS

Bonjour le fil, bonjour le forum,

Oui c'est le problème avec l'événement Exit d'une Textbox. Si tu décides de quitter l'Userform et que le focus se trouve dans la Textbox le message s'affiche... Tu peut contourner en rajoutant :
Code:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Me.TextBox1.Value = "" then Exit Sub
If Not IsDate(TextBox1.Value) Then
        Cancel = True
        MsgBox "Format incorrect > jj/mm/aaaa" & (Chr(10) & Chr(13)) & "Ou Date non valide.."
        TextBox1.Value = ""
        Exit Sub
End If
Tr = 0
date_P = CDate(TextBox1.Value)
End Sub

Sinon, moi je reste dans le même hosto mais ils me rajoutent une camisole de force...
 
- 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
3
Affichages
650
Réponses
2
Affichages
1 K
V
Réponses
17
Affichages
3 K
VBgalère
V
Réponses
0
Affichages
1 K
M
Réponses
3
Affichages
2 K
MONADESIGN82
M
B
Réponses
1
Affichages
905
Bullrot
B
Réponses
26
Affichages
4 K
B
Réponses
6
Affichages
1 K
L
Réponses
1
Affichages
1 K
Lucien31
L
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…