Bonjour,
Je suis nouvelle sur la programmation VBA et j'aurai besoin de votre aide svp.
J'ai fait un programme où je fais appel à des comboBox et textBox, uniquement sur une feuille excel (pas de userform)
Je renseigne mon département dans une comboBox, et j'associe le code correspondant grace à un textbox. Tout fonctionne.
Je souhaite maintenant selectionner plusieurs départements dans ma comboBox, tout en gardant quasimment le même affichage.
C'est à dire, en cliquant sur mon bouton departement, ma liste s'affiche, mes départements sont sélectionnés et mes valeurs alimentent par la suite ma comboBox. Par exemple: Hauts-de-Seine/Paris/Val-de-Marne en fonction de ce qui est sélectionné...
Je dois associer tout cela probablement à une LISTEBOX, mais je ne sais pas à quelle étape l'intégrer? Devrais je me séparer de mes comboBox???
Je m'embrouille entre les différents codes trouvés sur les forums. Surtout que ces codes sont faits pour des userforms :/
Voici un bout de code fait pour mes combobox (qui marche mais sans la multiselection):
est ceque je dois refaire mon code en enlevant mes comboBox ou je peux insérer ma listBox quelque part?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 Sub ComboBox1_Initialize() ComboBox1.Clear 'departement TextBox1.Value = "" 'code 'pour remplir ma combobox, je stocke mes donnees filtrées et triées. '(Je peux renseigner la combobox en enlevant les doublons: 'If ComboBox1.ListIndex = -1 Then ComboBox1.AddItem Sheets("Feuil2").Range("A" & j)) , c'est plus simple mais lent à l'exécution.) Sheets("Feuil1").Range("b1:b65356").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheets("Feuil2").Range( _ "b1"), Unique:=True ActiveWorkbook.Worksheets("Feuil2").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Feuil2").Sort.SortFields.Add Key:=Range("b1"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortTextAsNumbers With ActiveWorkbook.Worksheets("Feuil2").Sort .SetRange Range("b2:b65536") .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Dim departement As String Dim lastdepartement As Integer lastdepartement = Sheets("Feuil2").Range("b65536").End(xlUp).Row For i = 2 To lastdepartement departement = Sheets("Feuil2").Cells(i, 2).Value ComboBox1.AddItem departement Next i End Sub 'le code associé Sub ComboBox1_change() If ComboBox1.Value = "" Then TextBox1.Value = "" End If If ComboBox1.Value <> "" Then TextBox1.Value = WorksheetFunction.VLookup(ComboBox1.Value, Sheets("Feuil2").Range("AA1:AB65536"), 2, False) End If End Sub 'fin code
Ci joint un exemple court du pgm et son affichage.
Je vous remercie par avance pour votre aide et votre patience.







Répondre avec citation

et

si la réponse vous a été utile !
Partager