Macro ou formule pour trouver un mot et retourner un autre

kat_va

Nouveau membre
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.
 

dextermat

Grand Maître
Salut, je suis pas sure que je comprend la question mais voila p-e une piste:

dans la colonne tu fais ex:

A1=bleu B1=rouge a3=(=B1=A1) sa te donne true ou false: dans ce cas sa te donne false
A1=bleu A2=bleu a3=(=B2=A2) sa va te donner true sa devrais aider pour régler ton problème
 

zeb

Modérateur
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 !

Code:
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 ?
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 134
Messages
6 718 059
Membres
1 586 394
Dernier membre
Manoushk
Partager cette page
Haut