Supposons que la première ligne contienne les en-têtes de vos colonnes et que le filtre automatique soit défini. Vous voulez maintenant savoir quelle est la première ligne à filtrer.
Sub RecherchePremierelignefiltree() Dim l As Long Sheets ("Feuil9"). Activate Range ("A1"). Select For l = 2 To ActiveSheet.UsedRange.Rows.Count If ActiveSheet.Rows (l) .Hidden <> True Then MsgBox " La première ligne filtrée est la ligne & l, vbInformation: Exit For End If Next End Sub
Étant donné que les données réelles ne commencent pas avant la ligne 2, configurez la boucle For Next avec une valeur de départ de 2 et parcourez tous Les zone utilisée. Dans la boucle, vérifiez si la propriété Hidden de la ligne respective renvoie la valeur False. Si cette valeur est renvoyée pour la première fois, le numéro de la ligne actuelle s’affiche à l’écran. La boucle est ensuite sortie directement à l’aide de l’instruction Exit For. De même, vous pouvez déterminer la dernière ligne filtrée en construisant la boucle de telle sorte qu’elle commence par la dernière ligne de la zone utilisée et progresse.
Sub DernièereRechercheDeLigneFiltree() Dim l As Long Sheets ("Feuil9"). Activate Range ("A1"). Select For l = ActiveSheet.UsedRange.Rows.Count To 1 Step -1 If ActiveSheet.Rows (l) .Hidden <> True Then MsgBox " La dernière ligne filtrée est la ligne " _ & l, vbInformation: Exit For End If Next End Sub