Fonction Like avec case texte

Résolu
jungledidi Messages postés 2 Statut Membre -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
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. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
    1. jungledidi Messages postés 2 Statut Membre
       
      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
      1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320 > jungledidi Messages postés 2 Statut Membre
         
        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