Macro recherche plusieurs critères cellule

Résolu
Bonjour,

Dans la colonne a:a Je souhaiterais créer une macro de recherche.le problême c'est que je souhaiterais pouvoir faire une recherche multi critères.par exemple dans la cellule a3 il y a italie rome 133.je souhaiterais pouvoir rechercher "italie 133" par exemple.
Merci pour votre aide

8 réponses

  1. Contributeur
    Bonsoir,

    Tu ne précises pas si tu veux les références ou un filtre...
    Une proposition de filtre dynamique :
    Filtre multiple.xls

    eric
    3
    1. Bonjour,
      Comment as tu fait ce fitre dynamique c'est exactement ce que je voulais!!!
      0
    2. Contributeur
      Bonjour,

      En vba, clic-droit sur le nom de l'onglet de la feuille et 'visualiser le code...'
      eric
      0
  2. Bonjour,

    je sais pas si c'est exactement ce que tu veux mais voila une piste :

    un conseil appuie sur F8 (ca déclenche le code ligne par ligne) et pose ta souris sans cliquer sur cellule pour bien comprendre ce que cela fait

    Sub x()

    texte = InputBox("Merci d'indiquer le texte recherché :", "texte recherché") ' permet à l'utilisateur de rentrer ce que tu cherches
    If texte <> "" Then 'si tu n'as rien rentré, la macro s'arrête
    i = 2 ' commence à la 2ème ligne
    Do While Cells(i, 1) <> "" 'la boucle tourne jusqu'à ce que tu n'ais rien dans une cellule de la colonne A
    nbtexte = Len(texte) 'nbtexte = nbre de caractères du texte recheché
    cellule = Cells(i, 1) 'cellule est égale à la valeur contenue dans ta cellule
    Do While Len(cellule) > 0
    If UCase(Left(cellule, nbtexte)) = UCase(texte) Then
    'mets ici ce que ca doit faire lorsque tu as trouvé ton texte
    cellule = "a"
    End If
    cellule = Right(cellule, Len(cellule) - 1)
    Loop
    i = i + 1
    Loop
    End If

    End Sub
    0
    1. bonjour

      upeut etre quelque chose comme ça

      For li = 21 To 24
        a = InStr(1, Cells(li, 1), "Italie")
        b = InStr(1, Cells(li, 1), "133")
        If a * b > 0 Then
         MsgBox ("trouvé" & " - " & li)
       End If
      Next li


      RQ. attention a la casse, sinon Ucase transforme en majuscule

      bonne suite
      0
      1. Bonjour,

        mais la fonction ucase permet de transformer en majuscule, comme ca ca permet de comparer deux textes identiques et pas de problème d'accent.

        de plus, ton code ne permet la recherche que de italie 133 alors que le mien, tu peux rechercher n'importe quel texte.
        0
        1. > melanie

          tu as tout a fait raison, je voulais suggerer une idée pour repondre simplement a la question posée
          mais
          le texte cherché est une partie du contenu de la cellule, donc instr s'impose.

          bonne journée
          0
          1. Bonsoir,désolé mélanie ta macro ne fonctionne pas sur excel 2003
            0
            1. peu être est t'il possible de faire ce type de recherche avec une formule?
              0
              1. Salut,

                dans la cellule tu as ce type de donnée, exemple en A1 tu as Italie Rome 133 !

                si oui, et si je comprends bien dans la colonne A tu as plusieurs données identiques Italie Rome 133 ou sont elles différentes comme Italie 133 !
                0
                1. bonjour mike-31

                  c'est ce que j'ai compris, c'est pour ça que j'ai propose instr dans le post 2

                  bonne suite
                  0
                2. merci je vais essayer
                  0
                3. j'ai rajoute le code mais je pense qu'il faut créer un bouton specifique recherche
                  0
                4. j'ai reussi!! vous pouvez le mettre en resolu.je ne sais pas comment faire sur ces post
                  0