1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| Sub RechercheMasque()
Dim i As Long, MaChaine As String, Cell As Range
Dim DebutLigne As Long
Dim DebutCol As Long
' pour définir la limite inférieure
DebutLigne = 13
DebutCol = 3
' la chaine a tester
MaChaine = Feuil2.[A1].Value
Application.ScreenUpdating = False
With Feuil1
' on commence la boucle à la limite inférieure de la colonne ou de la ligne et on s'arrête à la valeur supérieure
For i = Application.WorksheetFunction.Min(DebutLigne, DebutCol) To Application.WorksheetFunction.Max(.UsedRange.Rows.Count, .UsedRange.Columns.Count)
' test sur la ligne
' on vérifie qu'on est pas avant la première ligne à prendre en compte, et pas après le nombre maximal de lignes de la plage
If i >= DebutLigne And i < .UsedRange.Rows.Count Then
Set Cell = .Rows(i).Find(MaChaine, , xlValues, xlWhole, xlRows)
If Cell Is Nothing Then Rows(i).Hidden = True
End If
' test sur la colonne
' on vérifie qu'on est pas avant la première colonne à prendre en compte, et pas après le nombre maximal de colonnes de la plage
If i >= DebutCol And i < .UsedRange.Columns.Count Then
Set Cell = .Columns(i).Find(MaChaine, , xlValues, xlWhole, xlColumns)
If Cell Is Nothing Then Columns(i).Hidden = True
End If
Next i
End With
Application.ScreenUpdating = True
End Sub |
Partager