ComboBox liste déroulante dans un formulaire

Résolu/Fermé
patscaph - 25 févr. 2013 à 00:25
 patscaph - 25 févr. 2013 à 00:58
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


4 réponses

cousinhub29 Messages postés 881 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 16 avril 2024 333
25 févr. 2013 à 00:43
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
1