sources ListBox variables

  • Initiateur de la discussion Initiateur de la discussion titeuf
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

titeuf

Guest
Bonjour à toutes et à tous,

J'ai une base de données avec dans la colonne 'A' 5 organismes qui ont chacun 5 sites (ces derniers sont dans la colonne 'B').
J'ai une ListBox (UserForm1.ListBox1) qui affiche les 5 organismes et je voudrais que la deuxième ListBox (UserForm2.ListBox1) affiche les 5 sites correspondant en fonction du choix dans la première ListBox.

Je pensais partir sur qqc comme ça :

UserForm2.ListBox1.Rowsource = Range('A1:A5').Find(UserForm1.ListBox1.Value, xl whole...).Offset(0,1).Value

mais pour l'instant rien ne marche....

Si quelqu'un a une idée (pas trop compliquée s'il vous plait, chui vraiment une bille), je suis preneur et je le remercie par avance.
 
Bonjour titeuf,

J'ai fait un truc simple un peu dans ce style en utilisant le filtre automatique.

Quand tu fais le choix de l'organisme dans le premier userform, tu peux exécuter le code suivant dans la partie traitement (UserForm1_Click()par exemple):

Sheets('Table').Activate
With Sheets('Table')
Range('A1').Select
If AutoFilterMode = False Then Selection.AutoFilter
If ListBox1.ListIndex >= 0 Then Selection.AutoFilter Field:=1, Criteria1:=ListBox1.Text

Ce qui met un filtre automatique dans la feuille table puis sélectionne l'organisme choisi comme critère.

Pour remplir le userform2, tu utilises le code suivant dans la partie 'initialize':

With Sheets('Table')
For Each c In .Range('B1', [B65536].End(xlUp)).SpecialCells(xlCellTypeVisible)
ListBox2.AddItem .Cells(c.Row, 2)
Next c
End With

L'important est le paramètre 'Specialcells...' qui ne va prendre en compte que les cellules visibles.

C'est relativement simple mais ça marche très bien. A la fin, tu peux enlever le filtre auto en mettant à False.

@+

Gael
 
re bonjour a tous,
ALors, la première partie du code (pour faire le filtre automatique) marche super bien.....mais la deuxième partie qui doit servir à remplir la deuxième ListBox génère une erreur :
ListBox2.AddItem.Cells(c.Row,2)
(erreur de compilation, attendu : =)

Quelqu'un saurait-il d'où cela peut venir

Merci encore Gael.
 
Bonjour titeuf,

C'est parceque tu as mal recopié le code 🙂

Ce n'est effectivement pas du tout évident mais après le additem, il y a un espace car le .cells n'est pas la suite de l'instruction mais l'argument à passer.

L'instruction complète serait par exemple:

listbox2.additem activesheet.cells(c.row,2) mais comme on est dans une boucle With, le activesheet est implicite.

@+

Gael
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

R
Réponses
5
Affichages
3 K
ricorico
R
S
Réponses
9
Affichages
1 K
S
Réponses
68
Affichages
9 K
Etoto0026
E
L
Réponses
7
Affichages
2 K
Laurent97310
L
X
  • Résolu(e)
Réponses
7
Affichages
2 K
Xplor
X
M
  • Résolu(e)
Réponses
5
Affichages
1 K
C
Réponses
10
Affichages
2 K
corloste
C
Retour