Fonction Like avec case texte

Résolu
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

  1. Contributeur
    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
    1. 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
    2. Contributeur
      @jungledidiRe

      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