Alimentation Zone de liste via boucle FOR

Bonjour,

Un tout petit TUTO pour ce que cela aiderait.

Voila une méthode que j'emploi très souvent pour alimenter une zone de liste déroulante ou non grâce à la boucle FOR.

'Alimentation d'une liste à l'initialisation de l'UserForm, dont la source se situe dans la feuille nommée DB
'On réalise l'alimentation via la boucle FOR pour laquelle on cherche la dernière ligne non vide de la liste (i)
'Dans la ligne 1 se trouve le titre de la colonne donc à ne pas intégrer à la liste

Private Sub UserForm_Initialize()
    Dim i as integer , x as integer
    i = ThisWorkbook.Sheets("DB").Range("a65536").End(xlUp).Row
    For x = 2 To i
        ListBox1.AddItem ThisWorkbook.Sheets("DB").Range("a" & x).Value
    Next x
End Sub

Bonjour,

Ont peut aussi faire sans boucle.

Private Sub UserForm_Initialize()
    Dim Ligne As Integer
    Ligne = Sheets("DB").Range("a" & Rows.Count).End(xlUp).Row
    ListBox1.RowSource = "DB!A2:A" & Ligne
End Sub

Fonctionne aussi sur des ListBox Multi colonne, supposons 5 colonnes...

    ListBox1.RowSource = "DB!A2:E" & Ligne

Cdlt.

C'est vrai sauf si l'alimentation n'est pas sur la feuille active, car si je ne me trompe pas, on ne peut pas préciser le nom de la feuille dans la formule définissant la sélection

Re,

Dans ton exemple... DB c'est quoi ?

Ô pardon , j'avais lu trop vite

Mais je me pose une question, est ce que cela marche pour toutes les versions d'excel?

Il me semblait avoir fait des essais de cette manière et ne pas y être arrivé

Dés qu'il y a la méthode RowSource ça fonctionne, en multiColonne ça dépend si le contrôle le supporte.

A+

PS: Je vois dans ton profil que tu a le 2003 et 2010... pourquoi tu fais pas les essais ?

Rechercher des sujets similaires à "alimentation zone liste via boucle"