Prendre seulement les lignes filtrées en compte via Macro

Bonjour à tous,

J'ai un souci d'exécution face à un filtre. Toutes les lignes sont parcourues par la macro, alors que j'aimerais que seul les lignes filtrées soient prises en compte.

Pouvez-vous m'aider Merci.

Sub SoulignerLigne()
'
' SoulignerLigne Macro
'
' Touche de raccourci du clavier: Ctrl+m
  On Error Resume Next
' D?clarations variables
Dim NbLigne As Integer
Dim ligne As Integer
Dim ValeurTeste As String
Dim xCible As String
Dim ImpNbLigne As Integer

' Initialisations variables valeur par d?faut
xCible = "Attention !"
ValeurTeste = Range("D2").Value ' Nom crit?re 1
ligne = 1
NbLigne = Range("D" & Rows.Count).End(xlUp).Row ' Compte le nombre total de ligne utilis?e par le tableau

Do 'Boucle sur toutes les lignes

    ligne = ligne + 1

    If Range("D" & ligne).Value <> ValeurTeste Then
         Range("D" & ligne).Select ' ligne selectionn?e pour le surlignage
         Selection.Font.Underline = xlUnderlineStyleSingle
         ValeurTeste = Range("D" & ligne).Value ' nouvelle valeur

    Else

        Range("D" & ligne).Select
        With Selection
             .HorizontalAlignment = xlCenter ' centre le texte
        End With
        Selection.Font.Italic = xlUnderlineStyleSingle ' Texte pr?c?demment centr? mis en Italic
        Range("F" & ligne).Select
        With Selection
            .HorizontalAlignment = xlCenter ' centre le texte
        End With
        Range(Cells(ligne, 1), Cells(ligne, 9)).Interior.Color = RGB(239, 239, 239) ' Gris clair

    End If

    If Range("H" & ligne) = xCible Then ' rouge
       Range("H" & ligne).Interior.Color = RGB(225, 94, 41)
       Range("A" & ligne, "G" & ligne).Font.ColorIndex = 3
       Rows(ligne).Select
       Selection.Font.Bold = True

    End If

Loop While ligne <= NbLigne  ' boucle tant que toutes les lignes n'ont pas ?t? test?e
'
Columns("B:B").Select ' S?lectionne la colonne B pour le masquage
Selection.EntireColumn.Hidden = True ' Masque la colonne B

ImpNbLigne = Range("D" & Rows.Count).End(xlUp).Row ' Compte le nombre total de ligne utilis?e par le tableau
Range("A1", "I" & ImpNbLigne).Select ' selectionne la plage ? imprimer

' Application.Dialogs(xlDialogPrint).Show ' Affiche la boite de dialogue pour s?lection imprimante

End Sub

Bon j'ai trouvé dans la boucle j'ai placé cette ligne

If Rows(ligne).Hidden = False Then 

end if
Rechercher des sujets similaires à "prendre seulement lignes filtrees compte via macro"