Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Microsoft 365macro qui s'adapte selon liste déroulante
bonjour à tous , tout d'abord un grand merci a fanch55 qui m'a bcp aidé a faire ce que je veux ne voulant pas abuser , je suis presqu'a la fin de mon projet.
je suis "créateur" de teintes a partir de plusieurs encres , dans le fichier que je fourni il y a sur la première page la fiche couleur on est explique comment ca fonctionne.
le soucis c'est que j'ai des autres fournisseurs d'encres dont j'ai rajouté les références des nouvelle teintes que j'ai créées sur une autre feuille (qui porte le nom du fabricant) je voudrais modifier la macro pour qu'elle s'adapte a ma liste déroulante quand je choisi tel ou tel fabriquant. bref je crois que ce sera plus clair quand vous ouvrirez le fichier .
si qqun a une solution (de dont je ne doute pas ...
Si les explications avaient été plus claires dès le début, on aurait avancé plus vite.
Bon, ma toute dernière PJ car ça devient complexe à modifier puisque toute la structure est basé que sur un fabricant.
Alors dans l'ordre :
1- La colonne D va devenir une usine à gaz puisqu'il faudra tenir compte des trois fabricants dans la formule.
Donc j'ai mis une fonction perso :
VB:
Function Encres(Fabricant, CelI)
Application.Volatile
Select Case Fabricant
Case "DIC": Encres = FabDIC(CelI)
Case "AKZO": Encres = FabAKZO(CelI)
Case "SUN": Encres = FabSUN(CelI)
End Select
End Function
Chaque fabricant renvoie à une fonction. Par ex DIC est remplie :
Code:
Application.Volatile
FabDIC = ""
Select Case CelI
Case "": FabDIC = ""
Case "40413": FabDIC = "YELLOW 40413 TO-2400"
Case "20400": FabDIC = "RED 20400 TO-4407"
Case "70400": FabDIC = "VIOLET 70400 TO-6400"
Case "60403": FabDIC = "BLUE 60403 TO-5402"
Case "60400": FabDIC = "BLUE 60400 TO-5425"
Case "50403": FabDIC = "GREEN 50403 TO-7400"
Case "41413": FabDIC = "YELLOW 41413 TO-2408"
Case "40407": FabDIC = "YELLOW 40407 TO-2405"
Case "40401": FabDIC = "YELLOW 40401 TO-2402"
Case "30403": FabDIC = "ORANGE 30403 TO-3404"
Case "21425": FabDIC = "RED 21425 TO-4423"
Case "20420": FabDIC = "RED 20420 TO-4406"
Case "20413": FabDIC = "RED 20413 TO-4402"
Case "81400": FabDIC = "BLACK 81400 TO-9426"
Case "RHT": FabDIC = "RED TO-4408"
Case "OHT": FabDIC = "ORANGE TO-3426"
Case "91400": FabDIC = "BROWN 91400 TO-8420"
Case "91404": FabDIC = "SILVER 91404 TO-0400"
Case "1327": FabDIC = "WHITE TONED TO-1327"
Case "10404": FabDIC = "WHITE 10404 TO-1400"
Case "1660": FabDIC = "WHITE TU-1660 "
Case "laque": FabDIC = "CLEAR TO-1402"
End Select
End Function
il faut faire de même avec les deux autres :
Code:
Function FabAKZO(CelI)
Application.Volatile
FabAKZO = ""
Select Case CelI
Case "": FabAKZO = ""
' A remplir, idem syntaxe que pour DIC
End Select
End Function
Function FabSUN(CelI)
Application.Volatile
FabSUN = ""
Select Case CelI
Case "": FabSUN = ""
' A remplir, idem syntaxe que pour DIC
End Select
End Function
2- J'ai modifié le code :
Code:
' On définit la plage à scruter dans la bonne feuille
Select Case Feuille
Case "DIC": Set Plage = Lob.Parent.Range(Lob.Name & "[[1327]:[RHT]]")
Case "AKZO": Set Plage = Lob.Parent.Range(Lob.Name & "[[10]:[Alu]]")
Case "SUN": Set Plage = Lob.Parent.Range(Lob.Name & "[[10]:[Alu]]")
End Select
' On cherche les différents composants
For Each C In Plage.Rows(Rw).Cells
De façon à définir la bonne feuille et la bonne plage où chercher les informations.
Je vous laisse le soin de terminer.
Il faut déjà remplir quelques lignes des deux fonctions AKZO et SUN pour pouvoir tester plus avant.
Re,
Je pense que vous allez galérer pour la mise au point.
Rien n'est pire que votre configuration, avec une feuille au départ, et ensuite on rajoute des feuilles non prévues. Ca casse tout et la mise au point est toujours compliquée.
En PJ une autre approche :
1- Pour chaque fabricant j'ai créé une ligne en haut du tableau où on met le Texte désiré pour la couleur.
( Je l'ai fait pour DIC, pour les autres, évidemment je ne sais pas )
2- J'ai créé une feuille Travail ( qui est masquée )
Quand on change de fabricant, on copie la bonne feuille dans Travail. Donc ensuite on ne travaille que sur cette feuille. D'où l'intérêt.
Dans Fiche Couleur, j'ai tout viré formule, MFC, ex colonne I.
Et tout est reconstruit par VBA, ce qui donne une macro très simple.
A tester si vous le désirez.
( J'ai mis la PJ en xlsb pour ne pas dépasser les 1Mo fatidique, vous pouvez l'enregistrer telle quelle ou l'enregistrer en xlsm. Les deux sont compatibles sous Windows mais pas sous Android.
Si les explications avaient été plus claires dès le début, on aurait avancé plus vite.
Bon, ma toute dernière PJ car ça devient complexe à modifier puisque toute la structure est basé que sur un fabricant.
Alors dans l'ordre :
1- La colonne D va devenir une usine à gaz puisqu'il faudra tenir compte des trois fabricants dans la formule.
Donc j'ai mis une fonction perso :
VB:
Function Encres(Fabricant, CelI)
Application.Volatile
Select Case Fabricant
Case "DIC": Encres = FabDIC(CelI)
Case "AKZO": Encres = FabAKZO(CelI)
Case "SUN": Encres = FabSUN(CelI)
End Select
End Function
Chaque fabricant renvoie à une fonction. Par ex DIC est remplie :
Code:
Application.Volatile
FabDIC = ""
Select Case CelI
Case "": FabDIC = ""
Case "40413": FabDIC = "YELLOW 40413 TO-2400"
Case "20400": FabDIC = "RED 20400 TO-4407"
Case "70400": FabDIC = "VIOLET 70400 TO-6400"
Case "60403": FabDIC = "BLUE 60403 TO-5402"
Case "60400": FabDIC = "BLUE 60400 TO-5425"
Case "50403": FabDIC = "GREEN 50403 TO-7400"
Case "41413": FabDIC = "YELLOW 41413 TO-2408"
Case "40407": FabDIC = "YELLOW 40407 TO-2405"
Case "40401": FabDIC = "YELLOW 40401 TO-2402"
Case "30403": FabDIC = "ORANGE 30403 TO-3404"
Case "21425": FabDIC = "RED 21425 TO-4423"
Case "20420": FabDIC = "RED 20420 TO-4406"
Case "20413": FabDIC = "RED 20413 TO-4402"
Case "81400": FabDIC = "BLACK 81400 TO-9426"
Case "RHT": FabDIC = "RED TO-4408"
Case "OHT": FabDIC = "ORANGE TO-3426"
Case "91400": FabDIC = "BROWN 91400 TO-8420"
Case "91404": FabDIC = "SILVER 91404 TO-0400"
Case "1327": FabDIC = "WHITE TONED TO-1327"
Case "10404": FabDIC = "WHITE 10404 TO-1400"
Case "1660": FabDIC = "WHITE TU-1660 "
Case "laque": FabDIC = "CLEAR TO-1402"
End Select
End Function
il faut faire de même avec les deux autres :
Code:
Function FabAKZO(CelI)
Application.Volatile
FabAKZO = ""
Select Case CelI
Case "": FabAKZO = ""
' A remplir, idem syntaxe que pour DIC
End Select
End Function
Function FabSUN(CelI)
Application.Volatile
FabSUN = ""
Select Case CelI
Case "": FabSUN = ""
' A remplir, idem syntaxe que pour DIC
End Select
End Function
2- J'ai modifié le code :
Code:
' On définit la plage à scruter dans la bonne feuille
Select Case Feuille
Case "DIC": Set Plage = Lob.Parent.Range(Lob.Name & "[[1327]:[RHT]]")
Case "AKZO": Set Plage = Lob.Parent.Range(Lob.Name & "[[10]:[Alu]]")
Case "SUN": Set Plage = Lob.Parent.Range(Lob.Name & "[[10]:[Alu]]")
End Select
' On cherche les différents composants
For Each C In Plage.Rows(Rw).Cells
De façon à définir la bonne feuille et la bonne plage où chercher les informations.
Je vous laisse le soin de terminer.
Il faut déjà remplir quelques lignes des deux fonctions AKZO et SUN pour pouvoir tester plus avant.
Ce site utilise des cookies pour personnaliser le contenu, adapter votre expérience et vous garder connecté si vous vous enregistrez.
En continuant à utiliser ce site, vous consentez à notre utilisation de cookies.