ComboBox liste déroulante dans un formulaire
Résolu
patscaph
-
patscaph -
patscaph -
Bonjour,
'' Question qui d'après moi s'addresse à des connaisseurs un peu pas mal spécialisé.
' Cette procédure cherche à intégrer des valeurs (texte ou autre)dans un objet
' de type 'Combobox' liste déroulante selon une instruction iterrative liée à un
' nombre de ligne à déterminer. J'ai bien une amorce de solution ci-bas décrite
' mais elle insère seulement la première ligne de la liste et pas le reste.????
' Quelqu'un aurait-il la solution à mon problème?
' MERCI
' Mise en Contexte:
' La procédure ci-bas s'active automatiquement lorsque le formulaire1 est demandé par
' la commande "Show"
' Elle fonctionne donc à l'intérieur d'un FORMULAIRE et vise à prendre
' les valeurs contenues à plusieurs ligne dans la sheet "Feuil1" dans la colonne "A".
' Le tout débutant à la ligne 2. Position de départ A2. Comme je ne connais pas le
' nombre d'information ou ligne à intégrer, je procède donc à
' une première étape soit de déterminer le nombre de ligne "nblign" en présence.
' Par la suite j'utilise cette référence ''nblign'' pour faire tourner en boucle l'entrée
' des valeurs ou textes dans la liste déroulante que je tente de créer COMBOBOX.
' Actuellement de cette manière seul le contenu de la première cellule
' apparaît dans la liste déroulante mais pourquoi?
' Alors je souhaite voir aussi tous les autres textes contenues dans la colonne pour
' construire ma liste dérolante (Combobox).
Private Sub UserForm_Activate()
Dim i As Integer, nblign As Integer
Dim c As Range
Sheets("Feuil1").Select
''''Calcul le nombre de ligne non vide dans la colonne A
nblign = 1
While Range("A2").Offset(nblign, 0).Value <> Empty
nblign = nblign + 1
Wend
nblign = nblign - 1
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Set c = Range("a2")
i = 1
While i <> nblign
'''''''''''''''''''''''''''''''''''''''''''''''
''Est-ce que cette procédure est bonne pour mon besoin?
ComboBox2.AddItem (Cells(i).Value)
i = i + 1
Wend
End Sub
'' Question qui d'après moi s'addresse à des connaisseurs un peu pas mal spécialisé.
' Cette procédure cherche à intégrer des valeurs (texte ou autre)dans un objet
' de type 'Combobox' liste déroulante selon une instruction iterrative liée à un
' nombre de ligne à déterminer. J'ai bien une amorce de solution ci-bas décrite
' mais elle insère seulement la première ligne de la liste et pas le reste.????
' Quelqu'un aurait-il la solution à mon problème?
' MERCI
' Mise en Contexte:
' La procédure ci-bas s'active automatiquement lorsque le formulaire1 est demandé par
' la commande "Show"
' Elle fonctionne donc à l'intérieur d'un FORMULAIRE et vise à prendre
' les valeurs contenues à plusieurs ligne dans la sheet "Feuil1" dans la colonne "A".
' Le tout débutant à la ligne 2. Position de départ A2. Comme je ne connais pas le
' nombre d'information ou ligne à intégrer, je procède donc à
' une première étape soit de déterminer le nombre de ligne "nblign" en présence.
' Par la suite j'utilise cette référence ''nblign'' pour faire tourner en boucle l'entrée
' des valeurs ou textes dans la liste déroulante que je tente de créer COMBOBOX.
' Actuellement de cette manière seul le contenu de la première cellule
' apparaît dans la liste déroulante mais pourquoi?
' Alors je souhaite voir aussi tous les autres textes contenues dans la colonne pour
' construire ma liste dérolante (Combobox).
Private Sub UserForm_Activate()
Dim i As Integer, nblign As Integer
Dim c As Range
Sheets("Feuil1").Select
''''Calcul le nombre de ligne non vide dans la colonne A
nblign = 1
While Range("A2").Offset(nblign, 0).Value <> Empty
nblign = nblign + 1
Wend
nblign = nblign - 1
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Set c = Range("a2")
i = 1
While i <> nblign
'''''''''''''''''''''''''''''''''''''''''''''''
''Est-ce que cette procédure est bonne pour mon besoin?
ComboBox2.AddItem (Cells(i).Value)
i = i + 1
Wend
End Sub
4 réponses
-
Bonsoir,
Essaie quelque chose dans ce style (en indiquant le nom de l'onglet)
Private Sub UserForm_Initialize() Dim I As Long, DerLig As Long With Sheets("Feuil1") 'Ici, il faut mettre le bon nom de l'onglet DerLig = .Cells(Rows.Count, 1).End(xlUp).Row For I = 2 To DerLig Me.ComboBox1.AddItem .Cells(I, 1).Value Next I End With End Sub
Bon courage