Message box apparait 2 fois sur un controle de Checkbox

Bonjour tout le monde. c'est mon premier message et je m initie au userform dans excel (enfin j'essaye)

voila mon probleme j'ai cree la checkbox suivante dans un userform mais elle me renvoie deux fois la msgbox si la condition n'est pas rempli

Private Sub UserForm_Initialize()

TextBox2.Enabled = False

Private Sub TextBox1_Change()

Dim Valeur As Byte

TextBox1.MaxLength = 4 'nb caractères maxi autorisé dans le textbox

End Sub

Private Sub CheckBox1_Click()

If CheckBox1.Value And TextBox1 > 2000 And TextBox1 < 9999 Then

TextBox2.Enabled = True

Else

TextBox2.Enabled = False

CheckBox1.Value = False

MsgBox "Renseigner d'abord TextBox1"

End If

End Sub

lorsque que je coche la checkbox concerné si une valeur est rentré dans la textbox1 alors il m'ouvre l'ecriture du textbox2

sinon si rien n'est renseigné alors il doit decocher la checkbox et laisser bloquer la textbox2 et m'afficher la msgobx cela marche correctement sauf qu'il m'affiche deux fois la msgbox

Auriez vous une solutions pour n'afficher qu'une seule fois cette checkbox

Merci

Bonjour,

Je n'ai pas la même erreur que ce que tu dis. Par contre essaie en modifiant tes macros comme suit :

Private Sub UserForm_Initialize()
TextBox2.Enabled = False
TextBox1 = 0
End Sub
Private Sub CheckBox1_Click()
If TextBox1 > 2000 And TextBox1 < 9999 Then
TextBox2.Enabled = True
Else
TextBox2.Enabled = False
CheckBox1.Value = False
MsgBox "Renseigner d'abord TextBox1 avec une valeur > 2000"
End If
End Sub

Amicalement

Merci de ta réponse dan elle me renvoie encore deux fois le msgbox

par contre j'ai trouvé une solution

le fait que je modifie la checkbox en dynamique excel doit effectué deux fois la boucle (une fois lorsque je clique et une autre fois lorsque ma commande mais la valeur false a la dite checkbox

donc voici ma solution

Private Sub CheckBox1_Click()

If TextBox1 > 2000 And TextBox1 < 9999 Then

TextBox2.Enabled = True

Else

TextBox2.Enabled = False

If CheckBox1.Value Then

End If

CheckBox1.Value = False

End If

End Sub

la msgbox n'apparaitra que dans le cas ou la checkbox est cochée et la condition pas remplie puis apres la commande decochera la checkbox. bon par contre faut bien respecter l'ordre d'ecriture

Rechercher des sujets similaires à "message box apparait fois controle checkbox"