Bonjour à tous,
j'aimerais alimenter un combobox2 en fonction du combobox1 sachant que le combobox2 change en fonction de chaque résultat du premier.
le problème que je rencontre est juste en dernière partie. il ne veut pas prendre ma ligne avec derlign etc. et je ne comprend pourquoi
Si besoin je peux aussi mettre mon fichier excel
voilà mon code
Merci de votre aide
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
50
51
52 Option Explicit Dim ws As Worksheet Dim NbLignes As Integer Dim derlign As Integer Private Sub UserForm_Initialize() 'Définit la feuille contenant les données Set ws = Worksheets("Feuil3") 'Définit le nombre de lignes dans la colonne A NbLignes = ws.Range("A65536").End(xlUp).Row 'Remplissage du ComboBox1 Alim_Combo 1 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 2eme ligne) For j = 1 To NbLignes Obj = ws.Range("A" & j) 'Remplit le ComboBox sans doublons If Obj.ListIndex = -1 Then Obj.AddItem ws.Range("A" & j) Next j End If 'Enlève la sélection dans le ComboBox Obj.ListIndex = -1 End Sub Private Sub ComboBox1_Change() Me.ComboBox2.Value = "" derlign = ws.Range(65536, Me.ComboBox1.ListIndex + 4).End(xlUp).Row Range(Cells(2, Me.ComboBox1.ListIndex + 4), Cells(derlign, Me.ComboBox1.ListIndex + 4)).Name = "leNom" Me.ComboBox2.RowSource = [lenom].Address End Sub
Partager