Recherche multicritère

Fermé
hmcirta Messages postés 237 Date d'inscription dimanche 12 mars 2006 Statut Membre Dernière intervention 7 novembre 2024 - 5 nov. 2022 à 10:12
hmcirta Messages postés 237 Date d'inscription dimanche 12 mars 2006 Statut Membre Dernière intervention 7 novembre 2024 - 8 nov. 2022 à 15:39

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

M-12 Messages postés 1331 Date d'inscription lundi 22 septembre 2008 Statut Membre Dernière intervention 8 avril 2023 283
5 nov. 2022 à 11:10

Bonjour,

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

0
danielc0 Messages postés 1408 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 18 janvier 2025 166
7 nov. 2022 à 15:02

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
hmcirta Messages postés 237 Date d'inscription dimanche 12 mars 2006 Statut Membre Dernière intervention 7 novembre 2024 21
7 nov. 2022 à 17:00

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
danielc0 Messages postés 1408 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 18 janvier 2025 166
7 nov. 2022 à 18:19

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

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

Posez votre question
hmcirta Messages postés 237 Date d'inscription dimanche 12 mars 2006 Statut Membre Dernière intervention 7 novembre 2024 21
8 nov. 2022 à 14:45

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
danielc0 Messages postés 1408 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 18 janvier 2025 166
8 nov. 2022 à 14:57

Bonjour,

Regarde le classeur :

https://www.cjoint.com/c/LKin41xfRR6


0
hmcirta Messages postés 237 Date d'inscription dimanche 12 mars 2006 Statut Membre Dernière intervention 7 novembre 2024 21
8 nov. 2022 à 15:39

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