TUTO : Alimentation Zone de liste via boucle FOR

Forum pour partager vos connaissances et vos astuces Excel / VBA ...
Avatar du membre
SylChat
Membre fidèle
Membre fidèle
Messages : 189
Inscrit le : 5 août 2013
Version d'Excel : 2003 FR / 2010FR

Message par SylChat » 5 août 2013, 14:56

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.

Code : Tout sélectionner

'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
Chercher, Trouver, Comprendre, Essayer & Assimiler...
c'est comme ça qu'on apprend par soi-même
Avatar du membre
lermite
Membre impliqué
Membre impliqué
Messages : 1599
Inscrit le : 5 février 2012
Version d'Excel : 2000/2007FR

Message par lermite » 23 octobre 2013, 11:11

Bonjour,
Ont peut aussi faire sans boucle. ;;)

Code : Tout sélectionner

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...

Code : Tout sélectionner

    ListBox1.RowSource = "DB!A2:E" & Ligne
Cdlt.
Tout problème a une solution, le vrai problème... c'est de la trouver.
Avatar du membre
SylChat
Membre fidèle
Membre fidèle
Messages : 189
Inscrit le : 5 août 2013
Version d'Excel : 2003 FR / 2010FR

Message par SylChat » 23 octobre 2013, 17:33

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
Chercher, Trouver, Comprendre, Essayer & Assimiler...
c'est comme ça qu'on apprend par soi-même
Avatar du membre
lermite
Membre impliqué
Membre impliqué
Messages : 1599
Inscrit le : 5 février 2012
Version d'Excel : 2000/2007FR

Message par lermite » 29 octobre 2013, 03:18

Re,
Dans ton exemple... DB c'est quoi ? ;;)
Tout problème a une solution, le vrai problème... c'est de la trouver.
Avatar du membre
SylChat
Membre fidèle
Membre fidèle
Messages : 189
Inscrit le : 5 août 2013
Version d'Excel : 2003 FR / 2010FR

Message par SylChat » 29 octobre 2013, 06:01

Ô 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é
Chercher, Trouver, Comprendre, Essayer & Assimiler...
c'est comme ça qu'on apprend par soi-même
Avatar du membre
lermite
Membre impliqué
Membre impliqué
Messages : 1599
Inscrit le : 5 février 2012
Version d'Excel : 2000/2007FR

Message par lermite » 30 octobre 2013, 08:57

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 ?
Tout problème a une solution, le vrai problème... c'est de la trouver.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message