Bonjour, bonsoir!

Je me présente à vous avec un soucis concernant le scripting.dictionary, je l'utilise sur deux combobox en cascade, le premier contient des noms d'articles et le second les tailles des articles sélectionnés (genre S,L,XL, 39, 40, 41,....), au final en fonction de l'article et de la taille sélectionnés, le nombre d'article en stock s'affiche dans une textbox.
Cela fonctionne très bien pour les noms et tailles en lettres mais rien ne s'affiche dans la textbox lorsque je sélectionne une taille d'article en nombre (type taille de chaussure: 44). De plus, si le nom d'un article est en nombre, là ce sont les tailles qui ne s'affichent plus dans la deuxième combobox (tailles en nombres et/ou chiffres).

Je vous joint mon code pour voir ce qu'il manque ou ce qu'il est nécessaire de modifier pour réparer tout ça ^^
La ComboBox4 correspond à la première Combobox, la Combobox6 correspond à la suivante, et la TextBox5 à la textbox devant contenir le nom d'article en stock (les noms d'articles, les tailles et le nombre d'articles en stock sont sur la même feuille excel dans l'ordre suivant: colA:nom article; colB:taille; colC:nombre d'articles en stock).

Cette partie-ci sert à une autre partie de mon userform et fonctionne très bien:
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
 Dim f,g
Private Sub UserForm_Initialize()
    Set f = Sheets("databasenoms")
    Set MonDicoNom = CreateObject("Scripting.Dictionary")
    For Each c In f.Range("A2:A" & f.[A65000].End(xlUp).Row)   ' on explore la colonne de niveau 1
      MonDicoNom(c.Value) = ""                                    ' on ajoute l'élément de la famille au dictionnaire
    Next c
    Me.ComboBox1.List = MonDicoNom.keys
 
End Sub
 
Private Sub ComboBox1_click()
    Me.ComboBox2.Clear
    Set f = Sheets("databasenoms")
    Set MonDicoNom = CreateObject("Scripting.Dictionary")
    For Each c In f.Range("A2:A" & f.[A65000].End(xlUp).Row)      ' on explore la colonne de niveau 1
       If c = Me.ComboBox1 Then MonDicoNom(c.Offset(, 1).Value) = ""   ' si famille alors on ajoute l'élément de la sous-famille au dictionnaire
    Next c
    Me.ComboBox2.List = MonDicoNom.keys
End Sub
Code à problème:
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
 Dim f,g
Private Sub UserForm_Initialize()
    Set f = Sheets("databasenoms")
    Set MonDicoNom = CreateObject("Scripting.Dictionary")
    For Each c In f.Range("A2:A" & f.[A65000].End(xlUp).Row)   ' on explore la colonne de niveau 1
      MonDicoNom(c.Value) = ""                                    ' on ajoute l'élément de la famille au dictionnaire
    Next c
    Me.ComboBox1.List = MonDicoNom.keys
 
    Set g = Sheets("databasemateriel")
    Set MonDicoDesignation = CreateObject("Scripting.Dictionary")
    For Each d In g.Range("A5:A" & g.[A65000].End(xlUp).Row)   ' on explore la colonne de niveau 1
    MonDicoDesignation(d.Value) = ""                                    ' on ajoute l'élément de la famille au dictionnaire
    Next d
    Me.ComboBox4.List = MonDicoDesignation.keys
End Sub
 
Private Sub ComboBox1_click()
    Me.ComboBox2.Clear
    Set f = Sheets("databasenoms")
    Set MonDicoNom = CreateObject("Scripting.Dictionary")
    For Each c In f.Range("A2:A" & f.[A65000].End(xlUp).Row)      ' on explore la colonne de niveau 1
       If c = Me.ComboBox1 Then MonDicoNom(c.Offset(, 1).Value) = ""   ' si famille alors on ajoute l'élément de la sous-famille au dictionnaire
    Next c
    Me.ComboBox2.List = MonDicoNom.keys
End Sub
Private Sub ComboBox4_click()
    Me.ComboBox6.Clear
    Me.TextBox5.Value = ""
    Set g = Sheets("databasemateriel")
    Set MonDicoDesignation = CreateObject("Scripting.Dictionary")
    For Each d In g.Range("A5:A" & g.[A65000].End(xlUp).Row)      ' on explore la colonne de niveau 1
       If d = Me.ComboBox4 Then MonDicoDesignation(d.Offset(, 1).Value) = ""   ' si famille alors on ajoute l'élément de la sous-famille au dictionnaire
    Next d
    Me.ComboBox6.List = MonDicoDesignation.keys
End Sub
Private Sub ComboBox6_click()
    Set g = Sheets("databasemateriel")
    For Each d In g.Range("A5:A" & g.[A65000].End(xlUp).Row)      ' on explore la colonne de niveau 1
       If d = Me.ComboBox4 And d.Offset(, 1) = Me.ComboBox6 Then Me.TextBox5 = d.Offset(, 2) ' si famille alors on ajoute l'élément de la sous-famille au dictionnaire
    Next d
End Sub
Merci à tous ceux qui se pencheront sur mon problème!

Cordialement,
SpcCwb.