Bonjour a tous,
Probleme a resoudre: Inserer des donnees d'une combobox fonction des donnees d'une liste variable (Plus de machines, plus de reference, moins de machines, moins de reference)
J'ai creer un fichier excel pour gerer des equipements dans ma societe. A vue du petit nombre, je ne souhaite pas utiliser access mais VBA.
Dans un premier fichier, je saisie les donnees des machines (famille, tarifs etc...).
Dans ce premier fichier, j'ai une combobox (Oui/ Non) a selectionner. Celle est fixe, donc mon code fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub ComboBox1_DropButtonClick() ComboBox1.List = Sheets("Table").Range("o2:o3").Value End Sub
Par contre, dans un deuxieme formulaire, je souhaite selectionner les references machines relatives a ce premier fichier (qui s'accroit au fur et a mesure que je saisie mes informations sur mes machines).
Et, la je ne sais pas developper le code ... J'ai tente de m'inspirer de celui-ci mais en vain.
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
42
43
44
45
46
47
48
49 'Les données sont dans les colonnes A à D, d'un onglet nommé "Base". 'La procédure effectue un remplissage conditionnel des Combobox en fonction de 'ce qui est sélectionnée dans le contrôle précédent: 'La sélection du ComboBox1 (données colonne A) définit le contenu du ComboBox2 (données colonne B) , 'La sélection du ComboBox2 définit le contenu du ComboBox3 (données colonne C) etc... ' Private Sub UserForm_Initialize() 'Définit la feuille contenant les données Set Ws = Worksheets("Table") 'Définit le nombre de lignes dans la colonne A nblignes = Ws.Range("b65536").End(xlUp).Row 'Remplissage du ComboBox1 Alim_Combo 1 End Sub Private Sub ComboBox1_Change() 'Remplissage Combo2 Alim_Combo 1, ComboBox1.Value End Sub 'Procédure pour alimenter les ComboBox Private Sub Alim_Combo(CbxIndex As Integer, Optional Cible As Variant) Dim j As Integer Dim Obj As Control 'Définit le ComboBox à remplir Set Obj = Me.Controls("ComboBox" & CbxIndex) 'Supprime les anciennes données Obj.Clear 'alimente le Combobox initial (Combobox1) If CbxIndex = 1 Then 'Boucle sur les lignes de la colonne A (à partir de la 3eme ligne) For j = 3 To nblignes Obj = Ws.Range("b" & j) 'Remplit le ComboBox sans doublons If Obj.ListIndex = -1 Then Obj.AddItem Ws.Range("b" & j) Next j End If 'Enlève la sélection dans le ComboBox Obj.ListIndex = 0 End Sub
Merci de votre contribution!
Partager