Vérifier si un composant d'une liste dans une combobox a été selectionné avant envoi

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

zephir94

XLDnaute Impliqué
Bonjour à tous,

Je voudrais avant l'envoi d'un formulaire dans un userform vérifier si une ligne d'une liste ( crée dans une feuille du classeur)
dans ma combobox est sélectionnée.

Pour vérifier les autres champs textbox j'ai procédé comme cela :

Code:
Dim ctl As Control
 
    For Each ctl In Me.Controls
        If TypeOf ctl Is MSForms.TextBox Then
            If ctl.Text = "" Then
       MsgBox "Veuillez saisir la date", vbExclamation
                Cancel = True
                Exit Sub
          

            End If
        End If
   Next

mais pour ma combobox avec une liste je n'y arrive pas, merci par avance
 
Dernière édition:
Re : Vérifier si un composant d'une liste dans une combobox a été selectionné avant e

Un grand merci à toi youky(BJ)

j'ai trouvé une autre façon à force de bidouiller 😱

Code:
Dim ctl As Control
 
    For Each ctl In Me.Controls
        If TypeOf ctl Is MSForms.TextBox Then
            If ctl.Text = "" Then
       MsgBox "Veuillez saisir la date", vbExclamation
                Cancel = True
                Exit Sub
          

            End If
        End If
  If ComboBox1.ListIndex < 0 Then
  MsgBox "Veuillez sélectionner une FOD", vbExclamation
   Cancel = True
   Exit Sub
   End If
   
   Next
et ça marche aussi !
Mais je vais tester ta solution aussi car il ne faut pas mourir idiot dit le proverbe !
Merci à toi
 
Re : Vérifier si un composant d'une liste dans une combobox a été selectionné avant e

Bonsoir le fil bonsoir le forum,

J'ai pris l'habitude de nommer les labels associées à un contrôle L plus le nom du contrôle. Par exemple la Label1 associée à la TextBox1 devient LTextBox1... LTextBox2, LComboBox1, etc. Cela me permet de boucler avec ce genre de code :

Code:
Private Sub CommandButton1_Click()
Dim CTRL As Control 'déclare la variable CTRL (ConTRôLe)

For Each CTRL In Me.Controls 'boucle sur tous les contrôle de l'UserForm
    'condition 1 : si le contrôle est une textbox ou une combobox
    If TypeOf CTRL Is msforms.TextBox Or TypeOf CTRL Is msforms.ComboBox Then
        If CTRL.Value = "" Then 'condition 2 : si le contrôle est vide
            'message reprenant le label associé au contrôle
            MsgBox "Veuillez renseigner le champ " & Me.Controls("L" & CTRL.Name).Caption & " !", vbExclamation
            CTRL.SetFocus 'place le curseur dans le contrôle
            Exit Sub 'sort de la procédure
        End If 'fin de la condition 2
    End If 'fin de la condition 1
Next CTRL 'prochain contrôle de la boucle
End Sub
Voir le fichier en pièce jointe :
 

Pièces jointes

Re : Vérifier si un composant d'une liste dans une combobox a été selectionné avant e

Bonsoir zephyr94, Bruno, Robert, le Forum,

Une autre façon de procéder, en mettant le nom du Label correspondant dans la propriété Tag de chaque contrôle associé:

Code:
Private Sub CommandButton1_Click()
Dim CTRL As Control 'déclare la variable CTRL (ConTRôLe)

For Each CTRL In Me.Controls 'boucle sur tous les contrôle de l'UserForm
    'condition 1 : si le contrôle est une textbox ou une combobox
    If TypeOf CTRL Is msforms.TextBox Or TypeOf CTRL Is msforms.ComboBox Then
        If CTRL.Value = "" Then 'condition 2 : si le contrôle est vide
            'message reprenant le label associé au contrôle
            MsgBox "Veuillez renseigner le champ " & CTRL.Tag & " !", vbExclamation
            CTRL.SetFocus 'place le curseur dans le contrôle
            Exit Sub 'sort de la procédure
        End If 'fin de la condition 2
    End If 'fin de la condition 1
Next CTRL 'prochain contrôle de la boucle
End Sub

Pas sûr que celà apporte grand-chose, c'est juste pour le fun (on oublie souvent d'utiliser la propriété Tag qui est pourtant fort utile)

Cordialement.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour