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 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
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 : 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 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 : 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 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![]()
Partager