Colore de couleur différente, des plages des lignes impair d'un tableau

Bonsoir à tous,

j’essaie en vain de colorer avec des couleurs différentes des plages de données de chaque ligne impair d'un tableau.

Pouvez-vous m'aider ?

Sub Couleur()
Dim LigneBordure As Integer
Dim LigneFin As Integer

'--- Met cadre sur ligne et colore les lignes impair ----------------------------------------------
[A65000].End(3).Select
LigneFin = ActiveCell.Row
Range("A2").Select
LigneBordure = ActiveCell.Row
While ActiveCell.Row < LigneFin
If ActiveCell.Row Mod 2 = 1 Then 'les lignes impair sont colorées

Range("A" & LigneBordure & ":BH" & LigneBordure).Interior.Color = RGB(253, 233, 217) 'Colore de A à BH ligne impair

Range("BI" & LigneBordure & ":BM" & LigneBordure).Interior.Color = RGB(253, 233, 217) 'Colore de BI à BM ligne imper
Range("BN" & LigneBordure & ":BS" & LigneBordure).Interior.Color = RGB(255, 255, 255)
Range("BT" & LigneBordure & ":BW" & LigneBordure).Interior.Color = RGB(221, 217, 196)
Range("BX" & LigneBordure & ":CH" & LigneBordure).Interior.Color = RGB(255, 255, 255)
Range("CI" & LigneBordure & ":CV" & LigneBordure).Interior.Color = RGB(221, 217, 196)
Range("CW" & LigneBordure & ":CX" & LigneBordure).Interior.Color = RGB(238, 223, 236)
Range("CY" & LigneBordure & ":DF" & LigneBordure).Interior.Color = RGB(221, 217, 196)
Range("DG" & LigneBordure & ":DF" & LigneBordure).Interior.Color = RGB(220, 230, 241)
Range("DK" & LigneBordure & ":DN" & LigneBordure).Interior.Color = RGB(242, 220, 219)
Range("DR" & LigneBordure & ":DN" & LigneBordure).Interior.Color = RGB(228, 223, 236)
Range("DS" & LigneBordure & ":DY" & LigneBordure).Interior.Color = RGB(221, 217, 196)
Else
Range("A" & LigneBordure & ":DY" & LigneBordure).Borders.Color = 0
End If
ActiveCell.Offset(1, 0).Select
LigneBordure = ActiveCell.Row
Wend
End Sub

Merci pour votre aide.

Bonjour

Pourquoi ne pas utiliser un tableau structuré qui offre nativement dette coloration alternée ?

Je ne sais pas faire ... autrement!!

Bonsoir Luc_vba ,

Pas de classeur représentatif et anonymisé joint donc :

  • on ne connait pas la situation de départ
  • on n'a aucune idée de ce à quoi vous voulez aboutir

Je vais ressortir et polir à nouveau ma vieille boule de cristal pour espérer voir ce qu'on peut faire pour vous . Je l'avais remisée au grenier car elle n'a jamais vaticiné quoi que ce soit.

irma a

Bonsoir,
78chris bonsoir,

en effet la structure d'un tableau permet de mettre en couleur une ligne sur deux, mais ceci sur l'ensemble des colonnes de façon identique et là vu le code la couleur devrait être modifiée en fonction de ces groupes de colonnes, non ?

Donc oui un tableau structuré pour le recopie des MFC de façons automatique, mais il faut une MFC par couleur voulue, pour chaque groupe de colonne.
Ces groupes peuvent être plusieurs sur une MFC car certaines couleurs se répètent.

Par contre le contraste d'une couleur avec les autres n'est pas élevé au vu du choix des valeurs RGB.

@ bientôt

LouReeD

Bonjour,

Voici ma proposition en fonction de ta demande et du code que tu as posté.

Attention certaines des zones que tu as définies dans ton code se chevauchent.

Je vois aussi que tu veux utiliser RGB(255, 255, 255) Ce code est la couleur blanche. Pas besoin donc (à moins que tu aies paramétré dans ton classeur les couleurs de fond par défaut d'Excel).

Option Explicit
Sub test()

Dim nbre_ligne_max As Long
Dim num_ligne_cours As Long

nbre_ligne_max = Range("A1048576").End(xlUp).Row

'suppression éventuelle de toutes les couleurs actuelles dans les futures zones à colorer
Range("A2:DG" & nbre_ligne_max).Interior.Color = xlNone
Range("DK2:DQ" & nbre_ligne_max).Interior.Color = xlNone
Range("DR2:DY" & nbre_ligne_max).Interior.Color = xlNone

'colorer une ligne sur 2 (à partir de la ligne 3 selon ton exemple de code donné) --> step x te permet d'ajouter x directement au compteur
For num_ligne_cours = 3 To nbre_ligne_max Step 2

    Range("A" & num_ligne_cours & ":BM" & num_ligne_cours).Interior.Color = RGB(253, 233, 217)
    Range("BT" & num_ligne_cours & ":BW" & num_ligne_cours).Interior.Color = RGB(221, 217, 196)
    Range("CI" & num_ligne_cours & ":CV" & num_ligne_cours).Interior.Color = RGB(221, 217, 196)
    Range("CW" & num_ligne_cours & ":CX" & num_ligne_cours).Interior.Color = RGB(238, 223, 236)
    Range("CY" & num_ligne_cours & ":DE" & num_ligne_cours).Interior.Color = RGB(221, 217, 196)
    Range("DF" & num_ligne_cours & ":DG" & num_ligne_cours).Interior.Color = RGB(220, 230, 241)
    Range("DK" & num_ligne_cours & ":DQ" & num_ligne_cours).Interior.Color = RGB(242, 220, 219)
    Range("DR" & num_ligne_cours & ":DR" & num_ligne_cours).Interior.Color = RGB(228, 223, 236)
    Range("DS" & num_ligne_cours & ":DY" & num_ligne_cours).Interior.Color = RGB(221, 217, 196)

Next num_ligne_cours

End Sub

Pour info ; il est toujours préférable de faire précéder Range de sa "dépendance".

Cela précise clairement au code sur quelle zone travailler (classeur + feuille).

Plus proprement tu devrais avoir

ThisWorkbook.Sheets("nomdetafeuille").Range("A2:DG" & nbre_ligne_max).Interior.Color = xlNone et

ThisWorkbook.Sheets("nomdetafeuille").Range("A" & num_ligne_cours & ":BH" & num_ligne_cours).Interior.Color = RGB(253, 233, 217)

etc

Teste et dis nous.

13classeur1.xlsm (19.08 Ko)

Super, vous êtes géniaux. merci beaucoup

bonjour,

avec VBA, c'est réinventé l'eau chaude ...

Rechercher des sujets similaires à "colore couleur differente plages lignes impair tableau"