Recherche multicritère
Fermé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
- Recherche multicritère
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Rechercher ou entrer l'adresse mm - recherche google - Guide
- Recherche adresse - Guide
- Recherche image - Guide
- Je recherche une chanson - Guide
7 réponses
5 nov. 2022 à 11:10
Bonjour,
Peut-être qu'avec un fichier exemple, on pourrait savoir les cellules à rechercher
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
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.
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question8 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
8 nov. 2022 à 14:57
Bonjour,
Regarde le classeur :
https://www.cjoint.com/c/LKin41xfRR6
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.