Bonjour à tous,
J'ai lu cette discussion.
Je me permets de relancer la question, car je n'arrive pas à y trouver une réponse ;
Comme Google me dirige vers ce topic, je poste ma question à la suite ça aidera les prochains qui rencontreront ce soucis ;
Je dois créer un Excel qui permette à un jeune entrepreuneur de créer rapidement ses devis,
Le fichier sur lequel je travaille est dispo en pj,
Les seuls pages qui nous intéressent ici sont
THEMES
FORMULAIRE
Cet entrepreneur voudrait pouvoir sélectionner les thèmes (j'ai fais des CheckBox),
Si un thème est cliqué, je remplis la ListBox correspondante avec les données de la feuille Thème, de façon dynamqieu
J'aimerais que si cet entrepreneur ajoute une ligne à une colonne de la feuille THEME, cette donnée apparaisse dans la ListBox adéquate, qu'il puisse la sélectionner et remplir ensuite automatoquiement le devis,
A partir de là j'ai créé des plages nommées dynamiques, par exemple pour Installation c'est :
Nom du range("Installation"), rentré en français directement dans la fenêtre de propriété du listBox1 : =DECALER('Thèmes'!A2;0;0;NBVAL('thèmes'!A:A)-1;1)
Ca permet de ne pas prendre l'en-tête, mais récupérer sinon le nombre de lignes et resize en fonction,
(Déjà là, sur certains ordi de ma fac ça buggait -_- )
Donc ensuite, là ou j'ai mon soucis c'est en testant : si l'utilisateur rajoute une donnée dans une colonne, le RowSource n'est pas mis à jour,
Je cherche donc à faire en sorte qu'un clic sur la CheckBox(i) actualise la source de la ListBox(i) (correspondance, exprès, dans les numéros)
Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Public Function ActualiserListe(ByVal i As Byte, ByVal j As Byte) 'affectation de la feuille THEMES Set wsT = ThisWorkbook.Worksheets("Themes") With wsT 'actualise les données contenues dans la liste ListBox(i) 'colonne correspondante j n = .Cells(2, j).End(xlDown).Row Objects("listbox" & i).RowSource = .Cells(2, j).Resize(n, 1).Value End With End Function
Mon soucis, c'est que je ne suis pas dans un formulaire donc je ne peux pas passer par Me.Controles("ListBox" & i),
Et ce n'est pas non plus Objects("ListBox" & i).RowSource,
Bref en fait je cherche à quelle collection d'objects appartiennent les ActiveX pour pouvoir interroger de manière "générique", avec un "i" qui sert à désigner la listbox nomée ListBoxi
Merci d'avance pour votre aide,
Fichier en pj,
Normalement j'ai activé l'accès au code,
Par ailleurs le code dont je parle est dans la feuille Formulaire,
Et je n'ai pas réussi à faire une function qui prenne en input un num de checkbox et active la listbox adéquate,
J'ai du passer à contrecoeur par n procédures CheckBoxi_Clic
Merci pour votre aide et bon lundi !
Partager