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

autofilter, lignes en blanc, jaune, blanc

10 réponses
Avatar
Nico Iannizzi
Bonjour à toutes et à tous,

J'ai un problème que je n'arrive pas à résoudre par moi-même:

Comment je peux faire par macro qu'alternativement les lignes visibles
soient coloriées jaune, blanc, jaune, blanc,jaune etc. pour une meilleure
lisibilité.

Merci d'avances de vos précieuses suggestions

Nico Iannizzi

10 réponses

Avatar
denis P
Bonjour Nico,

Sans macro
avec format conditionnelle
Pour une alternance de deux couleurs
condition 1
la formule est =MOD(LIGNE();2)=0
condition
la formule est =MOD(LIGNE();2)<>0

en macro....

Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=MOD(LIGNE();2)=0"
Selection.FormatConditions(1).Interior.ColorIndex = 40
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=MOD(LIGNE();2)<>0"
Selection.FormatConditions(2).Interior.ColorIndex = 34

Pour une atltérnance de trois couleurs
condition 1
la formule est =MOD(LIGNE();3)=0
condition 2
la formule est =MOD(LIGNE()+1;3)=0
condition 3
la formule est =MOD(LIGNE()+2;3)=0

denis p.

"Nico Iannizzi" a écrit dans le
message de news:
Bonjour à toutes et à tous,

J'ai un problème que je n'arrive pas à résoudre par moi-même:

Comment je peux faire par macro qu'alternativement les lignes visibles
soient coloriées jaune, blanc, jaune, blanc,jaune etc. pour une meilleure
lisibilité.

Merci d'avances de vos précieuses suggestions

Nico Iannizzi


Avatar
Nico Iannizzi
Bonjour Denis,

J'ai essayé ton truc, et je l'ai mis dans dans la macro suivante:

Private Sub Worksheet_Calculate()

ActiveSheet.AutoFilter.Range.Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=MOD(LIGNE();2)=0"
Selection.FormatConditions(1).Interior.ColorIndex = 40
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=MOD(LIGNE();2)<>0"
Selection.FormatConditions(2).Interior.ColorIndex = 34

End Sub

Le problème que j'ai c'est que vu qu'il s'agit d'un objet autofilter, il se
peut que selon les filtres, deux ou plusieurs lignes paires ou impaires
consécutives ont la même couleur.
Comment faire pour que dans ce cas, l'alternance de couleur entre lignes
soit garantie?

Merci d'avance

Nico Iannizzi



Bonjour Nico,

Sans macro
avec format conditionnelle
Pour une alternance de deux couleurs
condition 1
la formule est =MOD(LIGNE();2)=0
condition
la formule est =MOD(LIGNE();2)<>0

en macro....

Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=MOD(LIGNE();2)=0"
Selection.FormatConditions(1).Interior.ColorIndex = 40
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=MOD(LIGNE();2)<>0"
Selection.FormatConditions(2).Interior.ColorIndex = 34

Pour une atltérnance de trois couleurs
condition 1
la formule est =MOD(LIGNE();3)=0
condition 2
la formule est =MOD(LIGNE()+1;3)=0
condition 3
la formule est =MOD(LIGNE()+2;3)=0

denis p.

"Nico Iannizzi" a écrit dans le
message de news:
Bonjour à toutes et à tous,

J'ai un problème que je n'arrive pas à résoudre par moi-même:

Comment je peux faire par macro qu'alternativement les lignes visibles
soient coloriées jaune, blanc, jaune, blanc,jaune etc. pour une meilleure
lisibilité.

Merci d'avances de vos précieuses suggestions

Nico Iannizzi







Avatar
AV
MAcro fortement inutile (sous peine de relance à chaque changement de filtre)
Exemple pour la plage A2:Cx (A1:C1 sont les étiquettes de colonnes)
Sélection A2:Cx >> Format >> MEFC >> la formule est :
=MOD(SOMME(SOUS.TOTAL(3;DECALER($A$2;LIGNE($A$2:$A2)-LIGNE($A$2);;)));2)
motif >> jaune >> OK



AV


Avatar
Nico Iannizzi
Bonjou Av,

Désolé, mais là je pige pas, il faudrait m'illuminer ...

- Pourquoi les références absolues???
- Certes la formule est impressionante mais qu'est ce qu'elle est censée faire

Merci pour d'éventuelles explic.

Nico Iannizzi

"AV" wrote:

MAcro fortement inutile (sous peine de relance à chaque changement de filtre)
Exemple pour la plage A2:Cx (A1:C1 sont les étiquettes de colonnes)
Sélection A2:Cx >> Format >> MEFC >> la formule est :
=MOD(SOMME(SOUS.TOTAL(3;DECALER($A$2;LIGNE($A$2:$A2)-LIGNE($A$2);;)));2)
motif >> jaune >> OK



AV







Avatar
Daniel.M
Bonjour,

Désolé, mais là je pige pas, il faudrait m'illuminer ...


Ne t'en fais pas Nico, AV est un incompris.


- Pourquoi les références absolues???


Parce que si tu ne mets pas de références absolues, la formule incrémentera la
cellule A2 (A3, A4, ...) à mesure que tu progresses dans ta sélection et ça, tu
ne le veux pas!


- Certes la formule est impressionante mais qu'est ce qu'elle est censée faire


Exactement ce que tu as demandé : colorier une ligne sur 2 dans une zone
filtrée.
As-tu essayé en suivant rigoureusement les étapes indiquées? Qu'est-ce qui ne va
pas (résultats obtenus versus résultats attendus).?


Salutations,

Daniel M.

Avatar
Daniel.M
Salut Alain,

=MOD(SOMME(SOUS.TOTAL(3;DECALER($A$2;LIGNE($A$2:$A2)-LIGNE($A$2);;)));2)


Il y a aussi la formule de mise en forme conditionnelle suivante (qui tire
profit du décalage _automatique_ des références lorsqu'on saisit sur une plage
A2:Cx)

=MOD(SUM(SUBTOTAL(3,$A$2:$A2)),2)

Salutations,

Daniel M.

Avatar
Daniel.M
=MOD(SUM(SUBTOTAL(3,$A$2:$A2)),2)


En français(!) maintenant :

=MOD(SOMME(SOUS.TOTAL(3;$A$2:$A2));2)

Salutations,

Daniel M.

Avatar
Nico Iannizzi
Rebonsoir AV,

Maintenant que je ne suis penché d'avantage sur l'affaire je me suis aperçu
que je n'avais poursuivi tes instructions à la lettre à savoir au lieu
d'opter comme tu le décrivais >>la formule est, j'avais pris l'option >> la
valeur de la cellule est......évidemment donc ça ne pouvais pas marcher.

Maintenant, vu les explications supplémentaires de Daniel, j'ai aussi le
pourquoi de la formule et j'avoue que c'est super astucieux!!!!

Merci beaucoup de ton aide, j'ai appris pas mal de choses.

Nico Iannizzi



"AV" wrote:

MAcro fortement inutile (sous peine de relance à chaque changement de filtre)
Exemple pour la plage A2:Cx (A1:C1 sont les étiquettes de colonnes)
Sélection A2:Cx >> Format >> MEFC >> la formule est :
=MOD(SOMME(SOUS.TOTAL(3;DECALER($A$2;LIGNE($A$2:$A2)-LIGNE($A$2);;)));2)
motif >> jaune >> OK



AV







Avatar
Nico Iannizzi
Bonsoir Daniel,

Merci, tes explications m'ont réellement illuminé. J'ai saisi maintenant
l'idée qui est derrière la formule et je te remercie vivement. Ca fait du
bien de trouver sur ce forum des gens comme toi qui savent aider.

Encore Merci,
Nico Iannizzi

"Daniel.M" wrote:

Salut Alain,

=MOD(SOMME(SOUS.TOTAL(3;DECALER($A$2;LIGNE($A$2:$A2)-LIGNE($A$2);;)));2)


Il y a aussi la formule de mise en forme conditionnelle suivante (qui tire
profit du décalage _automatique_ des références lorsqu'on saisit sur une plage
A2:Cx)

=MOD(SUM(SUBTOTAL(3,$A$2:$A2)),2)

Salutations,

Daniel M.






Avatar
AV
=MOD(SOMME(SOUS.TOTAL(3;$A$2:$A2));2)


Incontestablement plus court !
;-)
AV