Fonction Like avec case texte

Résolu/Fermé
jungledidi Messages postés 2 Date d'inscription mercredi 2 décembre 2015 Statut Membre Dernière intervention 2 décembre 2015 - 2 déc. 2015 à 12:57
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 2 déc. 2015 à 16:36
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

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 2/12/2015 à 14:17
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
0
jungledidi Messages postés 2 Date d'inscription mercredi 2 décembre 2015 Statut Membre Dernière intervention 2 décembre 2015
2 déc. 2015 à 15:37
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
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310 > jungledidi Messages postés 2 Date d'inscription mercredi 2 décembre 2015 Statut Membre Dernière intervention 2 décembre 2015
Modifié par michel_m le 2/12/2015 à 16:37
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
0