colorier le fond 1 ligne sur deux

  • Initiateur de la discussion gacent
  • Date de début
G

gacent

Guest
Mon problème est simple étant astigmate il m'est difficile de lire dans un tableau.
j'ai pour habitude de colorer une ligne sur deux dans les tableaux dés que leur largeur dépasse 3 ou 4 cellules.
j'aimerai avoir une macro permettant de faire cela sur un bloc sélectionné.
De plus cela serait sans doute un excellent exercice pour me familiariser avec l'adressage à l'intérieur d'un objet range.
merci pour les avis et conseils que vous pourriez me donner.
 

Nicko29

XLDnaute Nouveau
Salut,

tu n 'a pas besoin de macro pour ca , il te suffit d'utiliser la mise en forme conditionnelle (menu format, mise en forme conditionnelle)

et tu met la formule est égal à , puis =MOD(LIGNE();2)=0 et tu va dans format pour choisir la couleur de la ligne, ( le 2 c'est pour cololier les ligne impair , le 1 pour les ligne impair.)

l'astuce consite a colorier ton tablau d'une seule couleur et après d'apliquer la mise en forme conditionnelle, comme tu utilise qu'une mise en forme au lieu de deux ( ligne peir et impair)

voila si non voilà un exemple de macro

sub Macro1()


Range('B6:F15').Select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
'=MOD(LIGNE();2)=0'
Selection.FormatConditions(1).Interior.ColorIndex = 4
End Sub


voilou !

ciao

Message édité par: nicko29, à: 20/03/2005 22:16
 

Hervé

XLDnaute Barbatruc
Bonsoir

Sinon ce code fait la même chose, tout en libérant les MEFC pour autres choses.

Public Sub vev()
Dim i As Integer
Dim j As Integer
For i = Selection.Row To Selection.Row + Selection.Rows.Count - 1 Step 2
For j = Selection.Column To Selection.Column + Selection.Columns.Count - 1
Cells(i, j).Interior.ColorIndex = 15
Next j
Next i
End Sub

A plus
 
C

Carlos Pereira

Guest
Hervé écrit:
Bonsoir

Sinon ce code fait la même chose, tout en libérant les MEFC pour autres choses.

Public Sub vev()
Dim i As Integer
Dim j As Integer
For i = Selection.Row To Selection.Row + Selection.Rows.Count - 1 Step 2
For j = Selection.Column To Selection.Column + Selection.Columns.Count - 1
Cells(i, j).Interior.ColorIndex = 15
Next j
Next i
End Sub

A plus

Bonsoir à tous et à toutes,
est-ce qu'il y a une possibilité avec le code ci avant de colorier les lignes paires en gris et les lignes impaires en jaune, indépendament de la sélection effectuée?
Merci d'avance pour votre réponse.
 

Rai

XLDnaute Junior
Bonsoir,

Les unes en gris, les autres en jaune ?
Et uniquement sur la sélection ?

Mmmh, ça va faire un peu 'abeille' tout ça non ?

Essaie le code suivant :

Sub colore()
For Each rw In Selection.Rows
If rw.Row / 2 = Int(rw.Row / 2) Then
rw.Interior.ColorIndex = 15
Else
rw.Interior.ColorIndex = 19
End If
Next rw
End Sub

Bonne soirée
 
C

Carlos Pereira

Guest
Un grand merci Rai.

Ca marche.

C'est vrai que les couleurs choisies font penser à une abeille, mais le choix s'est fait uniquement à titre ' test'.

Schöne Grüße nach Berlin.
 
M

Mike

Guest
Bonjour,

Pour rebondir sur la proposition de code de Rai.

Si on l'applique sur une sélection de cellules après filtrage automatique, celà ne fonctionne plus. y a t-il une solution?

Agréable journée à tous.
 

Statistiques des forums

Discussions
312 972
Messages
2 094 053
Membres
105 929
dernier inscrit
baldeoumar