salut à tous et à toutes!
j'aimerai avancer un peu sur un petit exo sur lequel je me fais les dents pour bien comprendre le VBA...
J'ai un userform comprenant 2 list déroulantes, avec le contenu de ListBox1 qui dépend de ListBox2 (merci pour le coup de main "cwain").
Le contenu des deux ListBox est ensuite, mis dans deux cases que j'ai prédéfini dans mon code , dans A15 et B15.(voir mon code ci-dessous)
1) je souhaiterai, lancer mon userform seulement et uniquement, lorsque je Double click sur une plage de donnés précise (voir dans mon excel ci-joint, par exemple, de G15 à G20, ou bien même toute la colonne G). le contenu de mes ListBox seront donc inscrites sur ces deux colones.
voici mon code simplissime pour l'instant.
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
41 Private Sub ListBox1_Change() CategorieDepense = ListBox1.Text Select Case CategorieDepense Case Range("C1").Text ListBox2.ColumnHeads = True ListBox2.RowSource = "Feuil1!C2: C16" Case Range("D1").Text ListBox2.ColumnHeads = True ListBox2.RowSource = "Feuil1!D2: D16" Case Range("E1").Text ListBox2.ColumnHeads = True ListBox2.RowSource = "Feuil1!E2: E16" Case Range("F1").Text ListBox2.ColumnHeads = True ListBox2.RowSource = "Feuil1!F2: F16" End Select End Sub Private Sub UserForm_Initialize() Dim CategorieDepense As String Dim DetailDepense As String 'on défini la plage de donnés à mettre dans ListBox1 (feuil1, plage A2:A10) ListBox1.ColumnHeads = True ListBox1.RowSource = "Feuil1!A2: A10" End Sub Private Sub CommandButton1_Click() Feuil1.Range("A15") = ListBox1.Value Feuil1.Range("B15") = ListBox2.Value UserForm1.Hide Feuil1.Activate End Sub
Merci d'avance pour vos lumieres et bonne nuits à tous les couches tards comme moi!!
Partager