Recherche multicritère

hmcirta Messages postés 249 Date d'inscription   Statut Membre Dernière intervention   -  
hmcirta Messages postés 249 Date d'inscription   Statut Membre Dernière intervention   -

Bonjour,

Encore une fois je me tourne vers vous pour m'aider à trouver une solution comme vous savez bien le faire.

Voilà, j'ai un classeurs avec plusieurs feuilles qui ont le même contenu (le même template), et je voudrais, dans une plage de cellules préalablement sélectionnée dans des feuilles de mon choix, trouver les cellules qui contiennent en même temps 2 chaines de caractères par exemple "OBM" et "WBM".

Y a t-il un moyen de récupérer le résultat dans une feuille à part.?

Merci de votre aide habituelle. 

Windows / Chrome 107.0.0.0

7 réponses

  1. M-12 Messages postés 1349 Statut Membre 285
     

    Bonjour,

    Peut-être qu'avec un fichier exemple, on pourrait savoir les cellules à rechercher

    0
  2. danielc0 Messages postés 2175 Date d'inscription   Statut Membre Dernière intervention   286
     

    Bonjour,

    Tu ne peux faire qu'une sélection sur une plage à la fois. Essaie :

    Sub test()
      Dim Ligne As Long, C As Range, X As Range, ResAdr As String
      With Sheets("Résultat")
        For Each C In Selection
          Set X = Selection.Find("WBM", , , xlPart)
          If Not X Is Nothing Then
            If X.Address <> ResAdr Then
              ResAdr = X.Address
              If InStr(1, X.Value, "OBM") > 0 Then
                Ligne = Ligne + 1
                .Cells(Ligne, 1) = X.Address(0, 0)
              End If
            End If
          Else
            Exit Sub
          End If
        Next C
      End With
    End Sub
    

    La recherche est sensible à la casse. Les adresses des cellules trouvées sont listées sur la feuille résultat.

    Daniel


    0
  3. hmcirta Messages postés 249 Date d'inscription   Statut Membre Dernière intervention   23
     

    Bonjour,

    Merci de vos réponses.

    A l'exécution la macro n'affiche aucune erreursauf que rien ne s'affiche dans la feuille "Résultat" que j'ai créé au début du classeur. Le résultat réel est 5 occurrences. 

    0
  4. danielc0 Messages postés 2175 Date d'inscription   Statut Membre Dernière intervention   286
     

    Oups, désolé, je me suis rarement loupé comme ça :

    Sub test()
      Dim Ligne As Long, C As Range, X As Range, ResAdr As String
      With Sheets("Résultat")
        For Each C In Selection
          If InStr(1, C.Value, "OBM") > 0 And InStr(1, C.Value, "WBM") > 0 Then
            Ligne = Ligne + 1
            .Cells(Ligne, 1) = C.Address(0, 0)
          End If
        Next C
      End With
    End Sub

    Daniel


    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. hmcirta Messages postés 249 Date d'inscription   Statut Membre Dernière intervention   23
     

    Bonjour Daniel

    Maintenant il ne se passe rien, je ne vois pas le défilement des feuilles lors de l'exécution et rien ne s'affiche dans la feuille résultat

    0
  7. hmcirta Messages postés 249 Date d'inscription   Statut Membre Dernière intervention   23
     

    Bonjour,

    Merci pour le temps que tu consacres pour m'aider.

    Dans l'immédiat je suis au travail et je ne peux pas accéder au site, je verrai ça ce soir.

    0