Fonction Like avec case texte

[Résolu/Fermé]
Signaler
Messages postés
2
Date d'inscription
mercredi 2 décembre 2015
Statut
Membre
Dernière intervention
2 décembre 2015
-
Messages postés
16525
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
18 octobre 2021
-
Bonjour,

Je cherche à utiliser la fonction Like sur du texte..
Je veux identifier dans une matrice les cases qui contiennent la chaine de caractère présente dans une case donnée dans excel.

En gros (et sans succés, va sans dire..) dans ma feuille Excel dans la case A1 j'ai "bonbon"

Dans ma macro, je veux faire scanner la matrice non pas en mettant "bonbon" mais en renvoyant à la chaine de caractère dans A1 , sachant que les cases de la matrice scannée contiennent, entre autres cette chaine de caractère.

Ce qui marche:
If Cells(i, X).Text Like "*bonbon*" Then
etc..

Ce qui ne marche pas (je comprends pourquoi mais je sais pas comment l'écrire pour que ça marche):
If Cells(i, X).Text Like "cells(1,1).Text" Then
etc..

merci de votre aide.

1 réponse

Messages postés
16525
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
18 octobre 2021
3 231
Bonjour

un exemple à adapter à ton contexte
Pattern = "*" & Range("B2") & "*"
If Range("D4") Like Pattern Then MsgBox ("gagné")

pattern ou autre nom au choix !

Attention sensible à la casse !
a essayer "au cas où"
Pattern = Ucase("*" & Range("B2") & "*")

 Michel
Messages postés
2
Date d'inscription
mercredi 2 décembre 2015
Statut
Membre
Dernière intervention
2 décembre 2015

Bonjour Michel,

Merci pour ta réponse, ça marche parfaitement !
Je mets mon code qui est dans une boucle For au cas où pour les prochains.

Dim Pattern As String
COLONNE = COLONNE + 1
For i = 3 To DerLign
Pattern = "*" & Range("U1") & "*"
If Range("C" & i) Like Pattern Then
Cells(i, COLONNE).Value = Cells(i, 4).Value
End If
Next i



Bonne journée
Messages postés
16525
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
18 octobre 2021
3 231 >
Messages postés
2
Date d'inscription
mercredi 2 décembre 2015
Statut
Membre
Dernière intervention
2 décembre 2015

Re

tu as beaucoup plus rapide

Nbre=application counif(range("C5:C" & derlig,pattern)

If Nbre >0 then

Lig=5
For cptr=1 to Nbre
lig=Column("C").find(pattern,cells(lig,"C")).row
cells(cptr,colonne)=cells(lig,"D")
next

else

Mgbox' pattern & "inconnu"
endif