Macro ou formule pour trouver un mot et retourner un autre
Tags :
Dernière réponse : dans Programmation
Bonjour, je souhaiterais effectuer dans une colonne contenant des descriptions (chaque cellule en contenant une) une recherche parmi une serie de mots clefs contenus dans une autre colonne (chaque cellule contenant un mot clef). De plus, chaque mot clef possède une abréviation qui est sur la même ligne que le mot, mais dans une autre colonne. Il faudrait donc que pour chaque ligne contenant une description la macro cherche si chacun des mots clefs est present.
Si un ou plusieurs mots clefs sont presents, il faudrait qu'il y ait marquer dans une quatrième colonne l'abréviation du ou des mots clef présent.
Merci beaucoup!!
Merci pour l'aide!
Je vais essayer d'expliquer mieux mon problème.
J'ai un document excel qui contient plus de 2000 descriptions et j'ai 30 mots clef que je dois retrouver dans les descriptions. Chaque mot clé a un code et c'est ce code que je dois obtenir comme réponse suite à la recherche du mot clef dans la description. Si il n'y a pas de mot clef dans la description alors l'espace est vide " ".
Exemple:
Mes descriptions sont dans la colonne A
A1: COURROIE SYNCHRO 30MM X 960MM X 8MM PAS
A2: ROULEMENT 12X37X12MM /BILLES/INOX
A3: COURROIE HEX. BB161
A4: O-RING KIT 122232/106248/106664/106107
A5: CONVOYEUR TABLE-TOP
Mes mots clef dans la colonne F et leurs codes dans la G
F1: ROULEMENT G1:BRG
F2: COURROIE G2: BLT
F3: O-RING G3: ORI
Ce que je veux obtenir c'est une 4e colonne (B) qui indique le code du mot clef présent dans la description. Dans l'exemple on aurait:
B1: BLT
B2: BRG
B3: BLT
B4: ORI
B5: " "
Donc pour chaque description on recherche tout les mots clefs et on renvoit le code du mot clef présent.
Si un ou plusieurs mots clefs sont presents, il faudrait qu'il y ait marquer dans une quatrième colonne l'abréviation du ou des mots clef présent.
Merci beaucoup!!
Merci pour l'aide!
Je vais essayer d'expliquer mieux mon problème.
J'ai un document excel qui contient plus de 2000 descriptions et j'ai 30 mots clef que je dois retrouver dans les descriptions. Chaque mot clé a un code et c'est ce code que je dois obtenir comme réponse suite à la recherche du mot clef dans la description. Si il n'y a pas de mot clef dans la description alors l'espace est vide " ".
Exemple:
Mes descriptions sont dans la colonne A
A1: COURROIE SYNCHRO 30MM X 960MM X 8MM PAS
A2: ROULEMENT 12X37X12MM /BILLES/INOX
A3: COURROIE HEX. BB161
A4: O-RING KIT 122232/106248/106664/106107
A5: CONVOYEUR TABLE-TOP
Mes mots clef dans la colonne F et leurs codes dans la G
F1: ROULEMENT G1:BRG
F2: COURROIE G2: BLT
F3: O-RING G3: ORI
Ce que je veux obtenir c'est une 4e colonne (B) qui indique le code du mot clef présent dans la description. Dans l'exemple on aurait:
B1: BLT
B2: BRG
B3: BLT
B4: ORI
B5: " "
Donc pour chaque description on recherche tout les mots clefs et on renvoit le code du mot clef présent.
Autres pages sur : macro formule trouver mot retourner
- kat_va a édité ce message
- kat_va a édité ce message
Lassé par la pub ? Créez un compte
Salut Kat_va,
Puisque tu poses la question dans programmation, je te propose de trouver une solution en VBA/Excel.
Ça te va ?
Je propose tout bêtement trois boucles imbriquées, sur tes descriptions, sur les mots de ces descriptions et sur tes codes.
La recherche de mots, c'est un peu chiant en VB, parce que les expressions régulières n'existent pas.
Spa grave. On va se débrouiller avec Split() et une boucle !
Des commentaires ?
Puisque tu poses la question dans programmation, je te propose de trouver une solution en VBA/Excel.
Ça te va ?
Je propose tout bêtement trois boucles imbriquées, sur tes descriptions, sur les mots de ces descriptions et sur tes codes.
La recherche de mots, c'est un peu chiant en VB, parce que les expressions régulières n'existent pas.
Spa grave. On va se débrouiller avec Split() et une boucle !
Dim description As Range Dim word As Variant Dim key As Range For Each description In Cells(1, 1).CurrentRegion For Each word In Split(description.Text) For Each key In Cells(1, 6).CurrentRegion If key.Text = word Then description.Offset(, 1).Value = key.Offset(, 1).Text Next Next Next
Des commentaires ?
- zeb a édité ce message