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