Tester plusieur textbox vide

Bonjour,

Je suis entrain de faire une macro sous excel en vba, et je n'arrive pas à faire une règle : j'ai plusieurs textbox (de 1 a 4) et un pushbutton.

J'aimerai que le pushbutton apparaît que si les 4 textbox soit remplit.

Quelqu'un pourrait m'aider svp ?

Merci

7 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Bonjour,

    Ou sont tes textbox? Feuille? Userform?
    De quel type formulaire? Activex?
    Qu'est ce qu'un pushbutton?
    1. Les textbox sont dans un Userform, et le pushbutton je voulais dire : commandButton pardon ^^
      1. Modérateur
        Bonjour,

        Alors c'est très simple. Insère ce code dans le CommandButton :

        ADAPTER : les noms des contrôles CommadButton1 ou 10???
        TextBox de 1 à 4 ou autre....

        Private Sub CommandButton1_Click()
        Dim i As Integer, Cptr As Integer
        Cptr = 0
        For i = 1 To 4
        If Me.Controls("TextBox" & i).Value <> "" Then Cptr = Cptr + 1
        Next i
        If Cptr < 4 Then
        MsgBox "Les champs de 1 à 4 sont obligatoires!", vbCritical
        Else
        'place ici le code au cas ou tous les textbox sont remplis
        End If
        End Sub

        EDIT : pardon j'ai mal lu la question...
        Ma réponse dans 5 minutes...
    2. Modérateur
      Re-

      Excuse moi, j'ai répondu trop vite en mélangeant plusieurs sujets...

      Voici le code à ajouter dans le module de l'UserForm.
      Attention, cela ne fonctionnera pas si tu utilises déjà les événements Exit de tes TextBox.
      Option Explicit

      Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
      Dim i As Integer, Cptr As Integer
      Cptr = 0
      For i = 1 To 4
      If Me.Controls("TextBox" & i).Value <> "" Then Cptr = Cptr + 1
      Next i
      If Cptr = 4 Then CommandButton1.Visible = True Else CommandButton1.Visible = False
      End Sub

      Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
      Dim i As Integer, Cptr As Integer
      Cptr = 0
      For i = 1 To 4
      If Me.Controls("TextBox" & i).Value <> "" Then Cptr = Cptr + 1
      Next i
      If Cptr = 4 Then CommandButton1.Visible = True Else CommandButton1.Visible = False
      End Sub

      Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
      Dim i As Integer, Cptr As Integer
      Cptr = 0
      For i = 1 To 4
      If Me.Controls("TextBox" & i).Value <> "" Then Cptr = Cptr + 1
      Next i
      If Cptr = 4 Then CommandButton1.Visible = True Else CommandButton1.Visible = False
      End Sub

      Private Sub TextBox4_Exit(ByVal Cancel As MSForms.ReturnBoolean)
      Dim i As Integer, Cptr As Integer
      Cptr = 0
      For i = 1 To 4
      If Me.Controls("TextBox" & i).Value <> "" Then Cptr = Cptr + 1
      Next i
      If Cptr = 4 Then CommandButton1.Visible = True Else CommandButton1.Visible = False
      End Sub

      1. J'ai coller ton code mais j'ai toujours le commandButton invisible :(

        Je sens que c'est un code pas compliqué mais faut le trouver mdr
        1. J'ai une erreur de compilation en fait :

          Il me sélectionne "Option Explicit" en bleu

          Et il me sélectionne en jaune la toute première phrase dans le module "Sub projet()"
          1. Modérateur
            Voir l'aide Excel pour Option Explicit...
            Tu peux, au choix :
            - supprimer la ligne Option Explicit
            - Placer cette ligne tout en haut de ton module...
          2. Du coup je le retrouve qu'avec Sub Projet() en jaune ^^ la toute première ligne.

            J'ai essayé plein de chose et toujours le même message
          3. Modérateur
            Que vient donc faire ta Sub Projet ici?????
            Le code que je t'ai donné doit être placé dans le module de l'userform tel qu'il est donné ici.

            Vois ce fichier exemple :
            https://www.cjoint.com/?DHhkAuc3fJl
          4. Je suis sur le tel donc je peux pas voir ton fichier.

            Y'a un truc que j'ai pas compris alors. Dans ma macro j'ai une feuille Userform1 et un module Module1. Je colle le code dans userform ?
          5. Modérateur
            Je colle le code dans userform ?
            oui.