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

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:

zephir94

XLDnaute Impliqué
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 :eek:

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
 

Robert

XLDnaute Barbatruc
Repose en paix
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

  • Essai.xlsm
    22.3 KB · Affichages: 27
  • Essai.xlsm
    22.3 KB · Affichages: 38
  • Essai.xlsm
    22.3 KB · Affichages: 35

Papou-net

XLDnaute Barbatruc
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

  • Essai Robert modifie.xlsm
    20.3 KB · Affichages: 28

Discussions similaires

Statistiques des forums

Discussions
312 338
Messages
2 087 397
Membres
103 535
dernier inscrit
moimeme1