Problème vba Excel: setfocus
Résolu/Fermé
LANGAZOU
Messages postés
95
Date d'inscription
vendredi 16 janvier 2015
Statut
Membre
Dernière intervention
8 novembre 2015
-
Modifié par pijaku le 26/01/2015 à 11:52
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 27 janv. 2015 à 08:04
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 27 janv. 2015 à 08:04
2 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 753
26 janv. 2015 à 11:54
26 janv. 2015 à 11:54
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
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 753
27 janv. 2015 à 08:04
27 janv. 2015 à 08:04
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
Modifié par pijaku le 26/01/2015 à 12:06
j'ai utilisé l'évenement Exit mais toujours avec le meme problème ( j'ai pas compri c'est quoi le paramètre cancel ).
26 janv. 2015 à 12:06
Ici, en choisissant Exit, cancel = False autorise la sortie, Cancel = true empêche la sortie.
Donc,
26 janv. 2015 à 12:27
26 janv. 2015 à 12:41
Comme ceci :
Copie-colle ce code :
26 janv. 2015 à 16:03