Find (sans quitter le filtrage en cours)

Bonjour à toutes et à tous,

Je vous souhaite un beau WE :)

Voilà longtemps que je cherche une solution pour afficher la ligne recherchée (masquée par filtrage) sans quitter le filtrage en cours.

Toutes mes recherches ont abouti au même résultat = le find ne fonctionne que sur les cellules visibles

Developpez.net avance des solutions possibles que j'ai copié dans la "Feuil5" du fichier test joint.

Malheureusement, malgré mes tentatives, je n'ai pas su les exploiter pour faire des tests.

J'ai également tenté "LookIn:=xlFormulas2" sans résultat.

J'ai remarqué que le 1er numéro cherché est toujours trouvé et la ligne affichée.

Existe-t-il un moyen pour que que le numéro cherché soit toujours considéré comme "LE 1er NUMERO CHERCHE" ?

Pourriez-vous m'aider ?

Une solution serait géniale pour notre travail car actuellement, il nous faut "dé-filtrer" pour afficher la ligne cherchée et "refiltrer" pour revenir au filtrage en cours.

Mon Code "Recherche" est dans le module "Trouve"
La feuille "N°_à_chercher" contient les Numéros à chercher après filtrage.

Je joins le fichier test

Je vous remercie pour votre aide.

Amicalement,
lionel :)

Bonjour

Une solution serait géniale pour notre travail car actuellement, il nous faut "dé-filtrer" pour afficher la ligne cherchée et "refiltrer" pour revenir au filtrage en cours.

Je n'ai pas compris votre souci car si je filtre par exemple sur le Capifrance puis que dans l'inputbox je mets la valeur de C7 (33111111113). Le code renvoie bien la cellule trouvée et démasque la ligne trouvée dans la feuille Appel

Peut -être donner un exemple pour que l'on reproduise ce que vous faites

Cordialement

Bonjour DAN,

Je vous remercie pour ce retour :)

Effectivement, au 1er n° cherché, ça fonctionne.

Mais si j'ai à en rechercher d'autres, dès le second, ça ne fonctionne plus,

lionel :)

Bonjour le fil, bonjour le forum,

Pas sûr d'avoir bien compris... Appliquer la macro ci-dessous au bouton Recherche :

Sub Macro1()
Dim OA As Worksheet 'déclare la variable OA (onglet Appels)
Dim TV As Variant 'déclare la variale TV (Tableu des Valeurs)
Dim BE As Variant 'déclare la variable BE (Boîte d'Entrée)
Dim MSG As String 'déclare la variable MSG (MeSsaGe)

Set OA = Worksheets("Appels") 'définit l'onglet OA
OA.Unprotect 'déprotège l'onglet
TV = OA.Range("A6").CurrentRegion 'définit le tableau des valeurs TV
OA.Protect 'protège l'onglet OA
BE = Application.InputBox("Valeur Cherchée", Type:=2) 'définit la boîte d'entrée BE
If BE = False Or BE = "" Then Exit Sub 'si bouton [Annuler] ou vide, sort de la procédure
For I = 1 To UBound(TV, 1) 'boucle 1 : sur toutes les lignes I de TV
    For J = 1 To UBound(TV, 2) 'boucle 2 : sur toutes les colonnes J de TV
        If CStr(TV(I, J)) = BE Then 'condition ; si la donnée ligne I colonne J de tv (convertie en texte) es égale à BE
            MSG = MSG & Chr(13) & "ligne " & I + 5 & ", colonne " & J 'définit le message MSG
        End If 'fin de la condition
    Next J 'prochaine colonne de la boucle 2
Next I 'prochaine ligne de la boucle 1
MsgBox BE & Chr(13) & MSG 'message
End Sub

La recherche ne se fait que sur la feuille APPEL ou sur d'autres ?
Là votre code balaye plusieurs feuilles et je pense que votre souci vient ce qui se passe dans la boucle DO au niveau de la feuille Sheets(K)

Edit : à priori je ne vois pas non plus pourquoi vous mettez des instructions --> Application.EnableEvents partout. Vous pouvez les enlever toutes

Bonjour,

une idée à développer.
Ajouter une colonne cachée où tu mets un "x" sur tes recherches.
Ton filtrage = ton_filtre OU colonne_cachée= "x"
eric

@ Dan : que sur la feuille Appels

:)

Bonjour Tau Thème,

Merci pour le code :)

Je teste,

lionel :)

@ Eriiic :)

Merci pour l'idée mais je ne peux pas ajouter de colonne cachée dans mon fichier de travail

Bonjour,

Je ne filtre rien du tout... Un clic sur la référence et on scrolle, la référence choisie est toujours la première.

Re Tau Thème,
Ne fonctionne pas chez moi :)

Bonjour @liob2

Voilà longtemps que je cherche une solution pour afficher la ligne recherchée (masquée par filtrage) sans quitter le filtrage en cours.

Cette demande me parait un peu illogique. Vouloir appliquer un filtre tout en affichant d'autres lignes masquées par le filtre aboutit à une situation incohérente.

Dans la même plage, on a l'impression (fausse) que le filtre est appliqué et rien que le filtre (c'est le boulot du filtre). Et parallèlement on aurait des lignes "parasites" qui pourtant devraient être invisibles au regard du filtre.

Pour se planter et ne plus savoir où on en est, c'est l'idéal, non ?

Et après, comment revenir au filtre initial ?

c'est ce que mapomme pense.

nota : à la rigueur mettre la plage à filtrer à partir de la ligne n. Et inscrire une copie des lignes recherchées et masquées dans le bloc des n-2 premières lignes. Ainsi on conserverait la cohérence.

Oulàlà ... du monde ici...

@ Dan : que sur la feuille Appels

1. Alors pourquoi bouclez-vous sur toutes les feuilles dans le code ?
2. Dans la feuille vous pouvez avoir plusieurs fois le même num en colonne K donc ?. Là je ne le vois qu'une fois

Bonjour Eric Kergresse :)

Je te remercie pour cet essai.

Malheureusement, ça ne correspond plus à mon fichier (il s'intègre dans un autre fichier de travail).

Mais je crois qu'il n'existe pas de solution.

La seule solution, je pense serait :

Que la recherche du numéro soit toujours considérée comme une 1ère recherche :)

@ Dan :)

1. Alors pourquoi bouclez-vous sur toutes les feuilles dans le code ?

2. Dans la feuille vous pouvez avoir plusieurs fois le même num en colonne K donc ?. Là je ne le vois qu'une fois

Dans ce fichier test, la recherche n'est que sur la feuille "Appels" mais dans dans mon fichier de travail, il y a d'autres feuilles.

Je pense qu'il n'y a pas de solution sauf peut-être à coder pour que la recherche du numéro soit toujours considérée comme une 1ère recherche.

Dans ce fichier test, la recherche n'est que sur la feuille "Appels" mais dans dans mon fichier de travail, il y a d'autres feuilles.

??? vous m'avez dit le contraire tout à l'heure

@ Dan :)
Désolé si je me suis trompé mais :

Dans ce fichier test, la recherche n'est que sur la feuille "Appels".

Mais le code est intégré dans dans mon fichier de travail où il y a d'autres feuilles.

Je pense qu'il n'y a pas de solution sauf peut-être à coder pour que la recherche du numéro soit toujours considérée comme une 1ère recherche.

en gros pour bien comprendre
- Vous avez x feuilles qui peuvent chacune comporter un numéro (33111111111 ou autre)
- Sur chaque feuille vous pouvez faire appel à l'usf et au bouton Recherche
- si vous cliquez sur ce bouton, vous voulez que le code fasse apparaitre la ou les lignes correspondant au numéro choisi dans l'inputbox et ce sur chaque feuille

Dites moi

Edit : en y repensant, attention que la méthode FIND ne fonctionne pas si vos lignes sont masquées. La méthode correcte serait que vous défiltriez, puis vous masquiez si la valeur demandée n'est pas trouvée.

@ Dan :)

"en gros pour bien comprendre"

- Vous avez x feuilles qui peuvent chacune comporter un numéro (33111111111 ou autre) : OUI

- Sur chaque feuille vous pouvez faire appel à l'usf et au bouton Recherche : NON uniquement sur la feuille "Appels"

- si vous cliquez sur ce bouton, vous voulez que le code fasse apparaitre la ou les lignes correspondant au numéro choisi dans l'inputbox et ce sur chaque feuille : NON uniquement sur la feuille "Appel"s et si pas trouvé dans la feuille "Appels, , le code balaye les autres feuilles,

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

L'UserForm n'est appelé qu'à partir de la feuille "Appels"

Le clic sur la cellule "I3" filtre la feuille selon l'option choisie,

Et ensuite là recherche :

1 - la recherche commence toujours sur la feuille "Appels" qui est toujours la feuille active quand la recherche est lancée,

2 - Si n° pas trouvé dans la feuille "Appels", le code balaye les autres feuilles,

L'objet de ma demande :

4 - Quand la feuille est filtrée, j'ai besoin que la recherche affiche la ligne du N° cherché sans quitter le filtrage en cours.

Mon avis :

Je pense qu'il n'y a pas de solution sauf peut-être à coder pour que la recherche du numéro soit toujours considérée comme une 1ère recherche.

Merci Dan d'être encore là,

lionel :)

@ThauThème

LOL je reviens sur ce que j'ai dit, le code fonctionne bien et donne la position du N° cherché.

Est-il possible de lui faire afficher la ligne du N° sans quitter le filtrage en cours ?

Merci,

lionel :)

Rechercher des sujets similaires à "find quitter filtrage cours"