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 SubBon j'ai trouvé dans la boucle j'ai placé cette ligne
If Rows(ligne).Hidden = False Then
end if