Microsoft 365 Recherche Find : impossible dans lignes masquées par le filtre

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,
Je vous souhaite un beau dimanche :)

Voilà longtemps que je cherche une solution pour afficher la ligne recherchée (masquée par filtrage).
Toutes mes recherches ont abouti au même résultat = le find ne fonctionne que sur les cellules visibles

Toutefois, 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:=xlFormulas" sans résultat.

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.

Je joins le fichier test code recherche :

VB:
Sub Recherche()
    If [p4] > 0 Then
        ActiveCell.Offset(0, 5).Select
        Exit Sub
    End If

    If [m1] = "TEXTBOX OUVERT" Then Exit Sub
        Nom = Application.InputBox("Saisir texte/chiffre(s) à trouver :", "Rechercher")
            If VarType(Nom) = vbBoolean Then 'Touche Annuler
                Nom = CStr(Nom)
                [a1].Select
                Exit Sub
            End If

        If Nom = "" Then
            Application.EnableEvents = False
            MsgBox ("Faudrait p'être saisir le(s) texte/chiffre(s) à trouver !")
            [a1].Select
            Application.EnableEvents = True
            Exit Sub
        End If
  
        If [a1] = "Désactiver ?" Then
            ActiveSheet.Unprotect Password:=""
            Columns("N:N") = ""
        End If
    
    ActiveSheet.Unprotect Password:=""
    'ActiveSheet.Range("k6:k" & Range("k65536").End(xlUp).Row).SpecialCells(xlVisible).Cells(1, 1).RowHeight = 20
    'https://forum.excel-pratique.com/excel/selectionner-la-premiere-cellule-non-filtree-t74462.html
    Application.EnableEvents = False
    q = ActiveSheet.Index
 
    For q = q To ActiveSheet.Index + Sheets.Count - 1
    K = (q - 1) Mod (Sheets.Count) + 1
        With Intersect(Sheets(K).UsedRange, Sheets(K).Rows("6:" & Rows.Count))
        On Error Resume Next
            Application.ScreenUpdating = False
            Set C = .Find(Nom, LookAt:=xlPart)   'LookAt:=xlpart dans cellule - LookAt:=xlWhole) 'cellule entière , LookIn:=xlFormulas2
            ActiveCell.RowHeight = 20
            If Not C Is Nothing Then
                firstAddress = C.Address
                Do
                On Error Resume Next
 
                Sheets(K).Select
                C.Activate
                Application.ScreenUpdating = True
                ActiveWindow.ScrollRow = Selection.Row 'ICI ICI ICI
                    'If [a1] = "Désactiver ?" Then
                        ActiveCell.RowHeight = 20
                    'End If
                  
            Rep = MsgBox("A trouver : " & Nom & Chr(10) & Chr(10) & "- OK dans  " & ActiveSheet.Name & Chr(10) _
            & "- Colonne " & Split(C.Address, "$")(1) & Chr(10) & "- ligne       " & C.Row & Chr(10) & Chr(10) _
            & "Continuer la recherche ?", 4 + 32, "Résultat")
            Cells(ActiveCell.Row, 1).Select
                  
                If Rep = vbNo Then
                    Application.EnableEvents = True
                    Exit Sub
                End If
  
        Application.ScreenUpdating = True
        Set C = .FindNext(C)
            Loop While Not C Is Nothing And C.Address <> firstAddress
        End If
        End With
    Next q
 
            MsgBox "Ben NON : y'a pas ou y'a plus !"
                Application.EnableEvents = False
                [a1].Select
                Application.EnableEvents = True
            ActiveSheet.Protect Password:="", DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
La feuille "N°_à_chercher" contient les Numéros à chercher après filtrage.

Big Big Big MERCI pour votre aide,
Amicalement,
lionel :)
 

Pièces jointes

  • recherche_filtre2.xlsm
    44.7 KB · Affichages: 12
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
"OK donc tu succombes à ton péché mignon"
Je comprends que tu le perçoives comme ça :)

Je fais selon les besoins de notre fichier (suite demande Client).
Dans un fichier, au départ, il n'y a des Prospects que pour 2 ou 3 réseaux.
Au fil du temps, d'autres Prospects pour des réseaux différents peuvent être ajoutés selon la demande du Client pour lequel on travaille.
Il me faut bien les ajouter,
lionel :)
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re-Gérard,
lignes.png

Il y a 2 filtrage dans le fichier :
1 - filtrage selon les catégories de Prospects à rappeler (1ère ligne avec date en col J commentaires en col L)
Ce filtrage classe les Prospects par ordre alphabétiques et n'affiche que les lignes "à rappeler"

2- filtrage par Réseau pour les NON appelés
Ce filtrage classe les Prospects par "réseau et n'affiche que les lignes "pas encore appelés" (2ème ligne sans date en col J et sans commentaires en col L)

Le second filtrage permet d'aller directement à la 1ère ligne du réseau choisi dans l'UserForm.
Evite de se "promener" en perdant des temps précieux.

Je veux bien en dire plus si besoin ...

Important : dans le fichier test, rien d'autre que le nom des Réseaux.
Dans le fichier de travail, les filtres sont basés sur les col J K et L
lionel :)
 
Dernière édition:

Discussions similaires

Réponses
8
Affichages
470
Réponses
2
Affichages
140
Réponses
2
Affichages
196

Statistiques des forums

Discussions
312 080
Messages
2 085 144
Membres
102 793
dernier inscrit
volfy