MsgBox dans UserForm.TextBox

Résolu
Bonjour,

Mon code :

Private Sub TextBox_NOMBREPR100_Change()
If UserForm1.CheckBox4.Value = False Then
UserForm1.TextBox_NOMBREPR100.Value = ""
MsgBox ("Impossible d'indiquer une quantité si la case contenant le type de palette n'est pas cochée.")
End If
End Sub


Je ne comprend pas pourquoi si je modifie ma TextBox_NOMBREPR100 et que la la CheckBox n'est pas cochée, j'ai la MsgBox mais 2 fois...

Merci d'avance.

Cordialement.

4 réponses

  1. Bonjour

    donne un modele de ton fichier ca serat plus simple pour te repondre

    A+
    Maurice
    0
    1. Bonjour a vous tous,

      Si pas case a cocher, vous faites une raz de la textbox qui a pour effet d'un appel recurcif de la procedure
       Private Sub TextBox_NOMBREPR100_Change()


      Je n'ai trouve que ce moyen pour empecher ca dans les divers fichers ou j'ai eu ce probleme:
      Dim Flag_Nok As Boolean
      
      Private Sub TextBox_NOMBREPR100_Change()
          If UserForm1.CheckBox1.Value = False And Not Flag_Nok Then
              Flag_Nok = True
              UserForm1.TextBox_NOMBREPR100.Value = ""
              MsgBox ("Impossible d'indiquer une quantité si la case contenant le type de palette n'est pas cochée.")
              Flag_Nok = False
          End If
      End Sub
      0
      1. Bonjour,

        Merci beaucoup pour la technique ! Elle marche absolument parfaitement.

        @cs_Le Pivert : Ne t'inquiète pas, je m'en sors plutôt pas mal. Les demandes que je fais n'ont rien à voir les unes avec les autres. Je suis désolé si ça ressemble à du SPAM, mais quand j'ai besoin d'aide, je demande. Pardon si cela paraît abusif..

        @Maurice : Je ne pense pas que partager le fichier sera d'une grande aide ici...

        Merci à vous tous.

        Cordialement.
        0
    2. Bonjour
      je pense que si car tu te melange un peux

      voila une solution pour mettre des quantiter
      Private Sub UserForm_Initialize()
         TextBox4.Locked = True
      End Sub
      
      Private Sub CheckBox4_Click()
         If CheckBox4.Value = True Then
            TextBox4.Locked = False
         Else
            TextBox4.Locked = True
            TextBox4.Value = ""
         End If
      End Sub
      
      Private Sub textbox4_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
          Select Case KeyAscii
          Case 48 To 57
              KeyAscii = KeyAscii
          Case Else
             KeyAscii = 0
          End Select
      End Sub
      
      Private Sub TextBox4_Change()
      
      End Sub
      

      A+
      Maurice
      1
      1. Merci beaucoup pour ce code. Je l'étudie demain.
        0