Merci d'avoir recherché pour moi, nec14.
Je continue à essayer de mon côté, mais ça ne fonctionne toujours pas.
Quelqu'un aurait-il une solution pour moi?
Sincèrement
Version imprimable
Merci d'avoir recherché pour moi, nec14.
Je continue à essayer de mon côté, mais ça ne fonctionne toujours pas.
Quelqu'un aurait-il une solution pour moi?
Sincèrement
j'ai trouvé ce site trés intéressant. Tu devrais y trouver ta solution.
http://boisgontierjacques.free.fr/pa...irecascade.htm
merci nec14, mais désolé j'avais consulté aussi ce site effectivement très intéressant, mais je n'ai pas réussi à adapter un des codes à mon problème.
Sincèrement
Bonjour avenir80,
Où en es-tu dans ton projet ?
Sinon est-ce qu'il t'es possible dans mettre en pièce jointe un fichier exemple, cela sera plus facile pour t'aider. ;)
bonjour nec14,
merci de prendre des nouvelles, ben je patauge toujours, tous les essais que je fais en changeant mon code ne remplissent pas les autres contrôles.
Pourquoi me redemandes-tu un fichier exemple, je t'avais dit que je l'avais mis avec mon premier message, il en faudrait plus? Le reste de mon code est la 1° partie avec un autre onglet sur mon usf pour remplir les classeurs avec d'autres contrôles.
Sincèrement
Avec un fichier c'est souvent plus parlant. Dans ton 1er post, il n'y a que le code. Il serait intéressant de connaitre les tenants et les aboutissants.
Donc un fichier réduit au strict minimum serait le bienvenu.
A toi de voir. ;)
Voici un autre code qui fonctionne, vois si tu peux te l'adapter.
Code:
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 Private Sub ComboBox1_Change() Sheets("le nom de ta feuille").Activate ' Récupère le nombre de lignes de la colonne concernée Lgn = Cells(2, Me.ComboBox1.ListIndex + 1).End(xlDown).Row Me.ComboBox2.Clear With ComboBox2 For i = 1 To Lgn - 1 .AddItem Sheets("le nom de ta feuille").Cells(i + 1, Me.ComboBox1.ListIndex + 2) Next i End With Me.ComboBox2.ListIndex = 0 Me.ComboBox3.Clear Lgn = Cells(2, Me.ComboBox1.ListIndex + 13).End(xlDown).Row Me.ComboBox3.Clear With ComboBox3 For i = 1 To Lgn .AddItem Sheets("le nom de ta feuille").Cells(i + 1, Me.ComboBox1.ListIndex + 13) Next i End With Me.ComboBox3.ListIndex = 0 Sheets("le nom de ta feuille").Activate End Sub
Excuse-moi, je n'ai pas trop eu le temps de te répondre.
Ton code n'est pas exactement ce que je dois faire.
J'ai réussi à faire ceci qui fonctionne, mais l'inconvénient c'est que la valeur dans le combobox51 reste toujours par défaut.
Vois-tu mon erreur?
Sincèrement;)Code:
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 Private Sub UserForm_Initialize() Set MonDico = CreateObject("Scripting.Dictionary") For Each c In Range(Sheets(ComboBox50.Value)([A10], [A65000].End(xlUp))) If Not MonDico.Exists(c.Value) Then MonDico.Add c.Value, c.Value Next c temp = MonDico.items Me.ComboBox51.List = temp Me.ComboBox51.ListIndex = 0 Public Sub ComboBox51_Click() Workbooks("Etudes.xls").Sheets(ComboBox50.Value).Activate Set MonDico = CreateObject("Scripting.Dictionary") For Each c In Range([A10], [A65536].End(xlUp)) If c = Me.ComboBox51 Then If Not MonDico.Exists(c.Offset(0, 1).Value) Then MonDico.Add c.Offset(0, 1).Value, c.Offset(0, 1).Value End If Next c temp = MonDico.items Me.ComboBox53.List = temp End If End sub Private Sub ComboBox53_Click() Set MonDico = CreateObject("Scripting.Dictionary") For Each c In Range([B10], [B65536].End(xlUp)) If c = Me.ComboBox53 Then If Not MonDico.Exists(c.Offset(0, 1).Value) Then MonDico.Add c.Offset(0, 1).Value, c.Offset(0, 1).Value End If End If Next c Me.ComboBox70.List = MonDico.items End sub Private Sub ComboBox70_Change() Set MonDico = CreateObject("Scripting.Dictionary") With Range("C10:C" + CStr(Range("C65536").End(xlUp).Row)) Set c = .Find(ComboBox70.Value, LookIn:=xlValues) If Not c Is Nothing Then TextBox52 = c.Offset(0, 1).Value TextBox55 = c.Offset(0, 2).Value TextBox56 = c.Offset(0, 3).Value TextBox71 = c.Offset(0, 4).Value TextBox72 = c.Offset(0, 5).Value TextBox68 = c.Offset(0, 6).Value End If End With End sub
Bonjour au forum,
en piochant, j'ai trouvé ma solution donc je la mets pour que cela serve à d'autres.
Code:
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 Private Sub ComboBox50_Click() Set f = Sheets(ComboBox50.Value) Set MonDico = CreateObject("Scripting.Dictionary") For Each c In Range(f.[A10], f.[A65536].End(xlUp)) MonDico(c.Value) = c.Value Next c Me.ComboBox51.List = MonDico.items End Sub Private Sub ComboBox51_Click() Workbooks("Etudes.xls").Sheets(ComboBox50.Value).Activate Set MonDico = CreateObject("Scripting.Dictionary") For Each c In Range(f.[A10], f.[A65536].End(xlUp)) If c = Me.ComboBox51 Then MonDico(c.Offset(, 1).Value)_ = c.Offset(, 1).Value Next c Me.ComboBox53.List = MonDico.items End Sub Private Sub ComboBox53_Change() Set MonDico = CreateObject("Scripting.Dictionary") For Each c In Range(f.[A10], f.[A65536].End(xlUp)) If c = Me.ComboBox51 And c.Offset(, 1) = Me.ComboBox53 Then_ MonDico(c.Offset(, 2).Value) = c.Offset(, 2).Value Next c Me.ComboBox70.List = MonDico.items End Sub Private Sub ComboBox70_Change() Set MonDico = CreateObject("Scripting.Dictionary") With Range("C10:C" + CStr(Range("C65536").End(xlUp).Row)) Set c = .Find(ComboBox70.Value, LookIn:=xlValues) If Not c Is Nothing Then TextBox52 = c.Offset(0, 1).Value TextBox55 = c.Offset(0, 2).Value TextBox56 = c.Offset(0, 3).Value TextBox71 = c.Offset(0, 4).Value TextBox72 = c.Offset(0, 5).Value TextBox68 = c.Offset(0, 6).Value End If End With End Sub
A bientôt, j'avance tout doucement dans mon projet, et encore merci :)