benoitoleron
XLDnaute Nouveau
Bonsoir à tous,
On vient de me refiler une tableau excel avec macro pour que je l'améliore.
J'ai fait ce que l'on me demande mais j'aimerai me rendre un tache plus facile lors d'une prochaine mise à jour du fichier.
Je fais quelques recherches sur différents forum, mais je ne trouve pas un exemple similaire au mien.
J'ai essayé d'adapter ceux que j'ai trouver mais va ne fonctionne pas donc je suis revenu à ce qui marche.
Mais cela me convient pas car fastidieux et je pense qu'une macro adaptée pour rendre le travail plus facile.
Le fichier Excel ci-joint vous permettra de voir ce qui cloche chez moi (enfin pas tout ce qui cloche dans ma tête hein )
C'est un rapport d'intervention pour le SAV.
La feuille est verrouillée pour éviter les modification de forme et de certaine cellule car c'est un document qualité qui doit-être identique entre tous.
Mon soucis :
Dans la colonne A en dessous de la cellule notée "Modèle", les techs saisissent un code produit (ex: 018010 ou Z018010)
Je souhaite qu'à la place du code apparaisse le nom du produit (ex : PRODUIT 1)
Le tout de manière automatique une fois la valeur validée.
Aujourd'hui j'ai dans la macro le code suivant qui fonctionne :
Or la liste de produits change de temps en temps.
J'aimerai donc que la macro réalise les actions suivantes :
Saisie par le tech de la réf,
La macro regarde dans l'onglet Produits si la référence est présente :
Si oui = la macro remplace par la valeur associée
Si non = aucune modification de la référence
Le tableau peut avoir son nombre de lignes augmenter à partir de la ligne 34.
La première ligne contenant modèle si situe en dessous, donc les références de la cellule de départ peuvent varier.
Le nombre de lignes concernées peut être proche des 5000.
Il faut appliquer cette macro au deux "sous tableaux" dessinés.
Entre deux références saisies il peut y avoir des cellules vides et qui devront le rester
Je pense ne rien avoir oublié, ah si le plus important :
Je vous remercie du temps que vous allez passer à m'aider car je patauge dans la mélasse là.
On vient de me refiler une tableau excel avec macro pour que je l'améliore.
J'ai fait ce que l'on me demande mais j'aimerai me rendre un tache plus facile lors d'une prochaine mise à jour du fichier.
Je fais quelques recherches sur différents forum, mais je ne trouve pas un exemple similaire au mien.
J'ai essayé d'adapter ceux que j'ai trouver mais va ne fonctionne pas donc je suis revenu à ce qui marche.
Mais cela me convient pas car fastidieux et je pense qu'une macro adaptée pour rendre le travail plus facile.
Le fichier Excel ci-joint vous permettra de voir ce qui cloche chez moi (enfin pas tout ce qui cloche dans ma tête hein
C'est un rapport d'intervention pour le SAV.
La feuille est verrouillée pour éviter les modification de forme et de certaine cellule car c'est un document qualité qui doit-être identique entre tous.
Mon soucis :
Dans la colonne A en dessous de la cellule notée "Modèle", les techs saisissent un code produit (ex: 018010 ou Z018010)
Je souhaite qu'à la place du code apparaisse le nom du produit (ex : PRODUIT 1)
Le tout de manière automatique une fois la valeur validée.
Aujourd'hui j'ai dans la macro le code suivant qui fonctionne :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Worksheets("RI IV").Unprotect Password:="TOTO"
Dim KeyCells As Range
' The variable KeyCells contains the cells that will
' cause an alert when they are changed.
Set KeyCells = Range("A34:A5000")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
' Remplace les valeurs des cellules A34 à A5000
If Target.Count > 1 Then Exit Sub
If Intersect(Target, [A34:A5000]) Is Nothing Then Exit Sub
If Trim(Target) = "018010" Or Trim(Target) = "Z018010" Then Target = "PRODUIT 1"
If Trim(Target) = "018090" Or Trim(Target) = "Z018090" Then Target = "PRODUIT 2"
If Trim(Target) = "018110" Or Trim(Target) = "Z018110" Then Target = "PRODUIT 3"
If Trim(Target) = "018190" Or Trim(Target) = "Z018190" Then Target = "PRODUIT 4"
If Trim(Target) = "018210" Or Trim(Target) = "Z018210" Then Target = "PRODUIT 5"
If Trim(Target) = "019010" Or Trim(Target) = "Z019010" Then Target = "PRODUIT 6"
If Trim(Target) = "019110" Or Trim(Target) = "Z019110" Then Target = "PRODUIT 7"
If Trim(Target) = "074010" Or Trim(Target) = "Z074010" Then Target = "PRODUIT 8"
If Trim(Target) = "074510" Or Trim(Target) = "Z074510" Then Target = "PRODUIT 9"
If Trim(Target) = "076010" Or Trim(Target) = "Z076010" Then Target = "PRODUIT 10"
If Trim(Target) = "076530" Or Trim(Target) = "Z076530" Then Target = "PRODUIT 11"
If Trim(Target) = "076510" Or Trim(Target) = "Z076510" Then Target = "PRODUIT 12"
If Trim(Target) = "078010" Or Trim(Target) = "Z078010" Then Target = "PRODUIT 13"
If Trim(Target) = "078510" Or Trim(Target) = "Z078510" Then Target = "PRODUIT 14"
End If
Worksheets("RI IV").Protect Password:="TOTO"
End Sub
Or la liste de produits change de temps en temps.
J'aimerai donc que la macro réalise les actions suivantes :
Saisie par le tech de la réf,
La macro regarde dans l'onglet Produits si la référence est présente :
Si oui = la macro remplace par la valeur associée
Si non = aucune modification de la référence
Le tableau peut avoir son nombre de lignes augmenter à partir de la ligne 34.
La première ligne contenant modèle si situe en dessous, donc les références de la cellule de départ peuvent varier.
Le nombre de lignes concernées peut être proche des 5000.
Il faut appliquer cette macro au deux "sous tableaux" dessinés.
Entre deux références saisies il peut y avoir des cellules vides et qui devront le rester
Je pense ne rien avoir oublié, ah si le plus important :
Je vous remercie