Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Colorier une ligne sur deux avec la mise en forme conditionnelle?

2 réponses
Avatar
Emile
Bonjour à tous,

Afin de faciliter la lecture de mes listings et tableaux je me sers des
mises en forme conditionnelles.
Et, afin de faciliter leur saisie je me sers de la macro ci-dessous qui
applique ma mise en forme à la sélection en cours.
Je souhaiterais l'améliorer, car la formule utilisée "=MOD(LIGNE();2)" ne
s'adapte pas aux tableaux qui ont des lignes masquées notamment avec
l'utilisation des filtres de tris. Autrement dit, si par exemple 3 ligne qui
se suivent se retrouvent masquées, le formattage (ColorIndex=xx) sera le
même sur deux lignes à la suite ce qui est inestétique.
Est-ce que je pourrais adapter (simplement) ma formule actuelle dans ma
macro ?


Sub CouleurLigne()
' CouleurLigne Macro Couleur 1 ligne sur 2
On Error Resume Next
Application.ScreenUpdating = False
If Selection.FormatConditions.Count = 0 Then
Selection.FormatConditions.Add Type:=xlExpression, _
Formula1:="=MOD(LIGNE();2)" ' <--<--<--<--<-- ICI
With Selection.FormatConditions(1).Interior
.ColorIndex = 35
End With
Else:
Selection.FormatConditions.Delete
End If
Application.ScreenUpdating = False
End Sub

--
Je vous remercie d'avance pour votre aide,
Cordialement,
Emile

2 réponses

Avatar
Nico Iannizzi
Bonjour Emile,

J'ai eu un problème très identique qui a été résolu dans ce forum.
Tape

autofilter, lignes en blanc, jaune, blanc

dans le champ Rechercher ......


Salut,

Nico Iannizzi



Bonjour à tous,

Afin de faciliter la lecture de mes listings et tableaux je me sers des
mises en forme conditionnelles.
Et, afin de faciliter leur saisie je me sers de la macro ci-dessous qui
applique ma mise en forme à la sélection en cours.
Je souhaiterais l'améliorer, car la formule utilisée "=MOD(LIGNE();2)" ne
s'adapte pas aux tableaux qui ont des lignes masquées notamment avec
l'utilisation des filtres de tris. Autrement dit, si par exemple 3 ligne qui
se suivent se retrouvent masquées, le formattage (ColorIndex=xx) sera le
même sur deux lignes à la suite ce qui est inestétique.
Est-ce que je pourrais adapter (simplement) ma formule actuelle dans ma
macro ?


Sub CouleurLigne()
' CouleurLigne Macro Couleur 1 ligne sur 2
On Error Resume Next
Application.ScreenUpdating = False
If Selection.FormatConditions.Count = 0 Then
Selection.FormatConditions.Add Type:=xlExpression, _
Formula1:="=MOD(LIGNE();2)" ' <--<--<--<--<-- ICI
With Selection.FormatConditions(1).Interior
.ColorIndex = 35
End With
Else:
Selection.FormatConditions.Delete
End If
Application.ScreenUpdating = False
End Sub

--
Je vous remercie d'avance pour votre aide,
Cordialement,
Emile




Avatar
isabelle
bonjour Emile

ce n'est pas une MEFC mais une solution différente,

Sub UneLigneSurDeux_FiltreAuto()
Dim x As Integer, i As Integer
x = 1
With Sheets("Feuil1").AutoFilter.Range.SpecialCells(xlCellTypeVisible)
DerLigne = .Areas(.Areas.Count)(.Areas(.Areas.Count).Count).Row
For i = 2 To DerLigne
If Not Rows(i).Hidden Then
x = x + 1
If 2 Mod (x) = 0 Then
Range("A" & i & ":B" & i).Interior.Color = vbRed
Else
x = 1
End If
End If
Next
End With
End Sub

isabelle


Bonjour à tous,

Afin de faciliter la lecture de mes listings et tableaux je me sers des
mises en forme conditionnelles.
Et, afin de faciliter leur saisie je me sers de la macro ci-dessous qui
applique ma mise en forme à la sélection en cours.
Je souhaiterais l'améliorer, car la formule utilisée "=MOD(LIGNE();2)" ne
s'adapte pas aux tableaux qui ont des lignes masquées notamment avec
l'utilisation des filtres de tris. Autrement dit, si par exemple 3 ligne qui
se suivent se retrouvent masquées, le formattage (ColorIndex=xx) sera le
même sur deux lignes à la suite ce qui est inestétique.
Est-ce que je pourrais adapter (simplement) ma formule actuelle dans ma
macro ?


Sub CouleurLigne()
' CouleurLigne Macro Couleur 1 ligne sur 2
On Error Resume Next
Application.ScreenUpdating = False
If Selection.FormatConditions.Count = 0 Then
Selection.FormatConditions.Add Type:=xlExpression, _
Formula1:="=MOD(LIGNE();2)" ' <--<--<--<--<-- ICI
With Selection.FormatConditions(1).Interior
.ColorIndex = 35
End With
Else:
Selection.FormatConditions.Delete
End If
Application.ScreenUpdating = False
End Sub