Problème vba Excel: setfocus
Résolu
LANGAZOU
Messages postés
100
Statut
Membre
-
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
j'ai un problème avec le setfocus que j'arrive pas à le maintenir dans mon textbox si le montant tapé n'est pas un multiple de 500 (il passe toujours au textbox suivant pourtant j'ai mis à la fin de mon code Textbox3.setfocus). voici mon code:
).
Merci pour votre réponse
j'ai un problème avec le setfocus que j'arrive pas à le maintenir dans mon textbox si le montant tapé n'est pas un multiple de 500 (il passe toujours au textbox suivant pourtant j'ai mis à la fin de mon code Textbox3.setfocus). voici mon code:
).
Private Sub TextBox3_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean) If TextBox3.Value / 500 <> TextBox3.Value \ 500 Then MsgBox "Entrer un multiple de 500" TextBox3 = "" Textbox3.setfocus End If End Sub
Merci pour votre réponse
2 réponses
Bonjour,
Au lieu d'utiliser l'événement BeforeUpdate, utilise l'événement Exit et son paramètre Cancel :
Au lieu d'utiliser l'événement BeforeUpdate, utilise l'événement Exit et son paramètre Cancel :
Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean) If TextBox3.Value / 500 <> TextBox3.Value \ 500 Then MsgBox "Entrer un multiple de 500" TextBox3 = "" Cancel = True End If End Sub
Bonjour,
Pour compléter notre discussion d'hier, je t'invite à tester ces codes :
Pour compléter notre discussion d'hier, je t'invite à tester ces codes :
Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Evénement : Sortie du TextBox3
If TextBox3 = "" Then 'Si le TextBox3 est vide
Cancel = True 'Empêche la sortie du TextBox3
Exit Sub '*********** SORTIE DE LA PROCEDURE *********
End If
Dim ValT3 As Double
ValT3 = CDbl(TextBox3)
If Mod_Gd_Nbre(ValT3, 500) <> 0 Then TextBox3 = "": Cancel = True
End Sub
Private Sub TextBox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Evénement : Dans le TextBox3, lors de l'appui sur une touche du clavier
'Empêche la saisie d'autre chose que des chiffres
If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0
End Sub
Function Mod_Gd_Nbre(Nbre As Double, Diviz As Double) As Double
'Fonction de calcul du Modulo (reste de la division) pour de grands nombres
Mod_Gd_Nbre = Nbre - (Int(Nbre / Diviz) * Diviz)
End Function
j'ai utilisé l'évenement Exit mais toujours avec le meme problème ( j'ai pas compri c'est quoi le paramètre cancel ).
Ici, en choisissant Exit, cancel = False autorise la sortie, Cancel = true empêche la sortie.
Donc,
Comme ceci :
Copie-colle ce code :