Renvoyer une valeur si

question excel.xlsx (8,7 Ko)

Bonjour,
j’ai une table d’articles avec un libellé complet, exemple :
article
|garcon manteau vert
|garcon pull bleu
|fille pantalon rose
|fille pull jaune

j’ai une table catégorie d’article avec un code catégorie, exemple :
catégorie| code
|manteau| 1|
|pull| 2|
|short| 3|
|pantalon| 4|

je voudrais qu’en face de chaque article, il soit attribué un code « catégorie » en fonction d’un des mots du libellé complet, exemple :
si le mot « manteau » se trouve dans le libellé « garcon manteau vert » alors attribuer le code 1

j’ai joint mon fichier en pièce jointe
Merci pour votre aide ! bonne journée

Bonjour Nathalie22 et bienvenue :wink:

Une possibilité avec une fonction personnalisée à mettre dans le classeur enregistré en « .xlsm »

La fonction :
Function CodeCat(Art As String, RngCatCode As Range)
Dim Ind As Long, Var_Tab() As Variant
Application.Volatile
’ Définir le tableau des catégories et code
Var_Tab = RngCatCode.Value
’ Chercher la valeur
For Ind = 1 To UBound(Var_Tab)
If Art Like « " & Var_Tab(Ind, 1) & " » Then
’ Si trouver on renvoit le code
CodeCat = Var_Tab(Ind, 2)
’ On peut sortir de la boucle
Exit for
End If
Next Ind
End Function

L’appel à la fonction, dans la cellule on met
=CodeCat(A2;$D$1:$E$5)

Le fichier ou il y a tout ça
Nathalie22_CatégorieFonctionMot.xlsm (23,1 Ko)

@+

Bonjour,
Merci beaucoup pour votre réponse :smiley:
Je ne sais pas comment « définir » le tableau des catégories et codes
bonne journée
Nathalie

Bonjour,

Il n’y a rien définir, c’est l’explication du code :thinking:

Ou alors, je n’ai pas compris votre question, mais tout est dans le fichier joint

@+