Sub RechercheTotale()
Dim zone As Range, txt$, x As Range, plage1 As Range, plage2 As Range, ref As Range
Set zone = ActiveSheet.UsedRange 'Set zone = [xxxx] 'si on définit la plage de recherche
'---InputBox---
txt = InputBox("Entrer le texte recherché", "Recherche")
If txt = "" Then Exit Sub
'---détermination des lignes et colonnes masquées---
For Each x In zone.Rows
If x.Hidden Then Set plage1 = Union(IIf(plage1 Is Nothing, x, plage1), x)
Next
For Each x In zone.Columns
If x.Hidden Then Set plage2 = Union(IIf(plage2 Is Nothing, x, plage2), x)
Next
'---recherche de la cellule---
If Not plage1 Is Nothing Then plage1.EntireRow.Hidden = False 'affichage lignes
If Not plage2 Is Nothing Then plage2.EntireColumn.Hidden = False 'affichage colonnes
Set ref = zone.Find(txt, LookIn:=xlValues, LookAt:=xlPart)
If Not plage1 Is Nothing Then plage1.EntireRow.Hidden = True 'masquage lignes
If Not plage2 Is Nothing Then plage2.EntireColumn.Hidden = True 'masquage colonnes
If ref Is Nothing Then MsgBox "Texte introuvable...": Exit Sub
'---affichage et sélection de la cellule---
ref.MergeArea.Rows.Hidden = False 'MeargeArea => si cellule fusionnée
ref.MergeArea.Columns.Hidden = False
ref.Select
End Sub