Rechercher mot dans une char (Excel)

Utilisateur anonyme -  
titeufdu89 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis bloqué sur Excel malgré mes nombreux essais et recherches :

Je dispose (dans une première feuille) d'un tableau de 2 colonnes de plus de 200 lignes et (dans une seconde feuille) d'une chaine de caractères

Mon but est de rechercher dans la chaine de caractère n’importe lequel des mots de la première colonne du tableau et d'afficher sa valeur associée de la seconde colonne.

RECHERCHEV ne fonctionne pas car la cellule ne contient pas uniquement la valeur recherchée
SI ne fonctionne pas non plus car j'ai plus de 64 choix possibles...

Je n'y arrive pas, si vous avez une solution ... Merci d'avance :)
A voir également:

5 réponses

DjiDji59430 Messages postés 4253 Date d'inscription   Statut Membre Dernière intervention   700
 
Bonjour,

Essaye :
=si(cherche(mot;chaine de caracteres);valeur associée;"")

Crdlmt
0
Utilisateur anonyme
 
Bonjour, désolé je me suis mal exprimé, je dois rechercher n’importe lequel des mots de la première colonne et pas seulement un seul (j’ai corrigé le post original)
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Bonjour,

l'idéal serait d'avoir un exemple de fichier pour en apprécier sa structure et te donner une formule de Mise en forme conditionnelle adaptée.
pour joindre ton fichier anonymisé
1) Tu vas dans https://www.cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier (15 Mo maxi)
3) Tu défiles vers le bas pour cliquer sur le bouton bleu [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien en gras ; tu fais un clic-droit dessus et tu choisis "Copier le lien"
5) Tu reviens dans ta discussion sur CCM, et dans ton message tu fais "Coller".
=>Voir la fiche https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers

dans le même style tu as https://mon-partage.fr/
0
Utilisateur anonyme
 
https://www.cjoint.com/c/HHxrw10Mjo3

j'ai ajouté un exemple type de mon fichier comme conseillé
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,

Pour ma part j'ai du mal à comprendre tes attentes, exemple pour la première recherche qui est UN dans Chaines, es ce que tu as EXEMPLE DE UN CHAINE le mot Un est noyé dans la chaine

ou simplement UN au début de ta chaine et la suite de ta chaine UN CHAINE mais le mot clé recherché UN est il toujours au début de ta chaine


0

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

Posez votre question
titeufdu89 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   38
 
Bonjour,

Voici un code VBA qui permet d'analyser tes chaines et renvoyer la valeur comme tu le souhaites.
Colle ce code, soit dans un module que tu relies à un bouton de controle pour mise à jour manuelle (clic bouton), soit dans la feuille base de données en adaptant le code pour que la macro s'execute automatiquement lorsqu'une cellule est modifiée.

Option Explicit

Sub analyse_chaine()

Dim base As Worksheet, rslt As Worksheet
Set base = ThisWorkbook.Sheets("base") '<<< "base" à remplacer par le nom de ta feuille
Set rslt = ThisWorkbook.Sheets("résultat") '<<< "réslutat" à remplacer par le nom de ta feuille

Dim i As Double, j As Double
Dim der_lig_b As Double, der_lig_r As Double
Dim rech As String
der_lig_b = base.Range("A65536").End(xlUp).Row
der_lig_r = rslt.Range("A65536").End(xlUp).Row


For i = 2 To der_lig_b
rech = "*" & base.Range("A" & i) & "*"  'si les mots recherchés sont contenus dans une autre colonne que la A, remplacer le A par la colonne en question
    For j = 1 To der_lig_r
    If rslt.Range("A" & j).Value Like rech Then 'si les chaines analysées sont contenus dans une autre colonne que la A, remplacer le A par la colonne en question
    rslt.Range("C" & j) = base.Range("B" & i).Value ' "C" et "B" à adapter en fonction de ton fichier
    GoTo nex
    End If
    Next j
nex:
Next i
End Sub
0