Si cellule contient mot d'une liste alors retranscrire le mot dans une autre col

Résolu
Naririne Messages postés 106 Statut Membre -  
Naririne Messages postés 106 Statut Membre -
Bonjour,

Pourrez-vous m'aider svp ?

Je possède un fichier avec 2 onglets (dans l'exemple en PJ).
La Datas est la base de mes ventes.
La Liste est la liste de mes produits.

Objectif : si cellule D2 (O. Datas) contient tel ou tel produit de la liste des produits (O. Liste), alors, mettre le nom du produit dans cellule G2 (O. Datas)
Faire de même jusqu'à qu'à la fin de la base (dans mon vrai fichier, je compte 40 000 lignes)

En somme, je voudrais dans l'onglet Datas, rapatrier le nom du produit vendu (colonne G) selon la désignation (colonne D)

La liste des produits en soit est simple mais les désignations sont complexes et contiennent le mot de tel ou tel produit.

Merci de votre aide !

https://www.cjoint.com/c/KIovpgSjo0R

Configuration: Windows / Chrome 93.0.4577.63

A voir également:

6 réponses

Vaucluse Messages postés 27336 Statut Contributeur 6 441
 
Bonjour
voyez ici si ça peut convenir
'(explications en rouge dans le fichier)
crdlmnt

https://www.cjoint.com/c/KIphx5k58Oj
1
Naririne Messages postés 106 Statut Membre 12
 
Bonjour,

Merci de votre aide.
En voulant l'appliquer à mon fichier de base, rien ne va plus, j'ai pourtant respecter les consignes.
Il y aurait donc quelque chose qui m'échappe. C'est comme si ça fonctionnait 1 fois sur 2.

Ma base produit se décale de 24 lignes à chaque fois.

Est-ce parce que j'ai 40 000 lignes ?
0
Vaucluse Messages postés 27336 Statut Contributeur 6 441 > Naririne Messages postés 106 Statut Membre
 
sans votre modèle, difficile de vous répondre?
Pouvez vous le déposer ici:
https://www.cjoint.com/
et revenir coller le lien créé sur le site, soit ici, soit en message personnel (en haut à droite)
à vous lire
crdlmnt
Ps: si problème pour cette opération, montrez nous ici au moins la formule que vous utilisez
0
Naririne Messages postés 106 Statut Membre 12
 
0
Raymond PENTIER Messages postés 71823 Statut Contributeur 17 376
 
Salut Vaucluse.

Très joli ! Bravo ...
0
Raymond PENTIER Messages postés 71823 Statut Contributeur 17 376
 
Bonjour Naririne.

Impossible !
La base produit est saisie en A1:A12 et est nommée "prod". Elle ne peut donc absolument pas se décaler, ni de 8, ni de 12, ni de 24, ni de 100 lignes, puisqu'elle n'est soumise à aucune formule, aucune macro, aucune manipulation !

Que tu aies 40, 400 ou 40000 lignes, cela n'a aucune incidence.
On attend la copie de ton fichier, avec 50 lignes et en remplaçant tes données confidentielles par des données bidon.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Naririne Messages postés 106 Statut Membre 12
 
Bonjour,

Désolé du retour tardif mais j'ai du trouver une solution "système D".
J'ai du me taper ce code (correspondant à la liste de produits).
Mais je ne sais pas faire la boule pour éviter d'avoir un code répétitif de 200 lignes...

Par ailleurs, je vous joints le fichier avec le bogue que je rencontre avec la formule de Vaucluse.
Je vous ai mis une trentaine de lignes :
- Problème sur le première lignes
- Problème aussi sur quelques lignes sur le reste du document

Sub ma_macro_1()

Dim Lig&, DerL&

For Lig = 2 To 39027

If InStr(1, Cells(Lig, 46).Value, "XXX") > 0 Then
Cells(Lig, 8) = "XXX"


End If
If InStr(1, Cells(Lig, 46).Value, "YYY") > 0 Then
Cells(Lig, 8) = "YYY"

End If
If InStr(1, Cells(Lig, 46).Value, "Produit X") > 0 Then
Cells(Lig, 8) = "Produit X"


https://www.cjoint.com/c/KIwjVRdyCdR

0
Vaucluse Messages postés 27336 Statut Contributeur 6 441
 
Bonjour
votre fichier en retour avec la formule adaptée au fait qu'il peut y avoir des textes en AT qui ne contiennent pas de texte de la liste
notez que pour vérif, j'ai modifié les deux premiers textes de la liste gamme
https://www.cjoint.com/c/KIwlchsIgej
crdlmnt
0
Naririne Messages postés 106 Statut Membre 12
 
UN GRAND MERCI !!

Je savais que c'était moi le souci lol.
je ne vous avais pas tout dit :)

Bonne journée !
0