recherche valeur dans zone ayant des cellules masquées

djerka99

XLDnaute Nouveau
Bonjour,

Auriez-vous un moyen en vba de faire une recherche dans une zone ayant des lignes masquées afin d'afficher la ligne de la valeur recherchée.

Merci à vous.
 

job75

XLDnaute Barbatruc
Re : recherche valeur dans zone ayant des cellules masquées

Bonsoir djerka99,

En effet la méthode Find en VBA ne permet pas de trouver des valeurs sur des lignes ou colonnes masquées.

Il faut donc afficher provisoirement toutes les lignes et colonnes de la zone de recherche.

Voyez cette macro :

Code:
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

Bonne nuit.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote