Bonsoir à toutes et à tous
J'ai 4 combobox en cascade, toutes définies en Scripting.Dictionary sur des colonnes. Ma cinquième combobox doit, en revanche, pour des soucis de lisibilité de ma base, prendre ses données sur 7 colonnes différentes.
Pour vous éclairer un peu, il s'agit de faciliter mes reportings, je travaille pour une société dans l'industrie de l'habillement. Donc cette cinquième combobox doit reprendre les tailles disponibles en fonction de la saison (première combobox) de l'article (deuxième combobox), de la matière de l'article (troisième combobox), et du coloris (quatrième combobox). Jusque là je n'ai rencontré aucun problème, mais à la cinquième je pèche carrément depuis une bonne journée... Je vous joins mon fichier (certaines choses sont à optimiser, notamment l'ordre des textbox et combobox qui font un peu galérer avec la touche tabulation, donc SVP, pas de commentaires dessus, j'y travaillerai c'est prévu XD ).
Voici le code de la combobox qui me pose problème:
J'ai pensé à créer la même base sur deux feuilles séparées pour l'avoir sous deux formes différentes pour pouvoir faire mon code sur une colonne et non pas plusieurs mais ça ne m'arrange pas vraiment vu que j'ai environ plus de 4500 références au total. J'ai également pensé à un vlookup que je pourrais donc utiliser sur ma colonne " REF.BIS " mais je vois pas trop comment tourner cette formule pour l'intégrer dans ma combobox. J'ai également pensé à quelque chose comme ça:
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 Private Sub Coloris_change() Set ws = Sheets("COMMANDES LIVREES MAGASIN") Set MonDico5 = CreateObject("Scripting.dictionary") With ws Me.Retail_Price = "" For j = 2 To .Range("A" & Rows.Count).End(xlUp).Row If Me.Saison = .Range("A" & j) And Me.Article = .Range("B" & j) And Me.Matiere = .Range("C" & j) And Me.Coloris = .Range("D" & j) Then Me.Retail_Price = Format(CDbl(.Range("O" & j)), "### ### ##0.00 ") MonDico5(.Range(Cells(1, 7), Cells(1, 13)).Value) = "" 'Erreur d'exécution 5: Argument ou appel de procédure incorrect Me.Taille.List = Application.Transpose(MonDico5.Keys) End If Next j End With End Sub
If Me.Saison = [...]
Me.Retail_Price = [...]
For ji = 7 to 13
MonDico5(.Range(ji & 1).Value) = ""
[...]
End If
Mais ça ne fonctionne pas non plus :'(
Donc si l'une ou l'un d'entre vous a une idée de génie, je suis preneur
Merci à toutes et à tous par avance pour le temps que me consacrerez ^^
Bien évidemment je répondrai à toutes les réponses, si la solution fonctionne ou pas
Wladounet
P.S: Désolé si je n'ai pas bien utilisé la balise de code Oo'
P.S2 : Si vous avez des idées pour optimiser mon code, je suis preneur également, je ne suis pas expert en VBA, j'en apprendrai davantage ainsi![]()
Partager