Alterner les couleurs de cellules en fonction des dates qui y apparaissent

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Magic_Doctor

XLDnaute Barbatruc
Bonjour,

J'ai une liste de dates aléatoires (appartenant à un intervalle de dates déterminées) triées chronologiquement.
La macro qui réalise ce tri marche maintenant très bien. Dans l'apparition aléatoire des dates, certaines ont parfois la même année et, dans le tableau, sont regroupées chronologiquement. Comment s'y prendre pour qu'il y ait une alternance de couleur de cellules afin de mieux distinguer dans le tableau les différentes années.
Exemple : le tableau me donne ceci :
Lunes 19/01/1981 ---> cellule bleue
Domingo 12/07/1981 ---> cellule bleue
Viernes 21/01/1983 ---> cellule blanche
Domingo 01/05/1983 ---> cellule blanche
Jueves 10/10/1985 ---> cellule bleue
Jueves 31/12/1987 ---> cellule blanche
Sábado 27/08/1988 ---> cellule bleue
Jueves 22/09/1988 ---> cellule bleue
Miércoles 12/04/1989 ---> cellule blanche
Jueves 13/04/1989 ---> cellule blanche
Jueves 08/02/1990 ---> cellule bleue
Viernes 21/12/1990 ---> cellule bleue
Miércoles 31/07/1991 ---> cellule blanche
Viernes 03/02/1995 ---> cellule bleue

Merci d'avance pour toute aide.
 

Pièces jointes

Dernière édition:
Re : Alterner les couleurs de cellules en fonction des dates qui y apparaissent

Bonjour,

Avec une colonne supplémentaire pour faire apparaître uniquement l'année (colonne pouvant être masquée par la suite), puis sélectionner le tableau et y attribuer une mise en forme conditionnelle avec cette formule :
=MOD(ENT(SOMMEPROD(1/NB.SI($B$1:$B1;$B$1:$B1)));2)>0

En colonne A = Vos dates
En colonne B = " =ANNEE(A1) " et à recopier vers le bas
 

Pièces jointes

Dernière édition:
Re : Alterner les couleurs de cellules en fonction des dates qui y apparaissent

Bonsoir piga25,

Merci pour ta réponse. En fait, je voudrais résoudre ce problème au moyen de VBA uniquement sans avoir à rajouter une colonne supplémentaire et devoir passer par les formats conditionnels.
J'essaye donc d'y parvenir en VBA.

Bonne soirée.
 
Re : Alterner les couleurs de cellules en fonction des dates qui y apparaissent

(re)

Un essai avec une macro "Colorier". Cette macro a été rajoutée à la macro du bouton "Nouvelles dates".

Le code:
VB:
Sub colorier()
Dim bleu, blanc, couleur
Dim tablo, i&, xrg As Range

bleu = RGB(145, 200, 250)
blanc = RGB(255, 255, 255)
couleur = bleu
With Sheets("Dates")
  tablo = .Range(.Range("e5"), .Range("e5").End(xlDown)).Value
  Set xrg = .Range("e5")
  xrg.Interior.Color = couleur
  For i = 2 To UBound(tablo)
    Set xrg = xrg.Offset(1)
    If Year(tablo(i, 1)) <> Year(tablo(i - 1, 1)) Then couleur = IIf(couleur = bleu, blanc, bleu)
    xrg.Interior.Color = couleur
  Next i
End With
End Sub
 

Pièces jointes

Re : Alterner les couleurs de cellules en fonction des dates qui y apparaissent

Bonjour mapomme,

Je viens d'essayer ta dernière modif avec la macro "Colorier". Ça marche très bien. Je garderai donc cette solution.
Comme j'aime bien nommer les plages de la feuille (pratique par la suite si l'on modifie la feuille), j'ai fait les modifications suivantes :
VB:
Sub Colorier()
'mapomme
    Dim bleu, blanc, couleur, tablo, i&, xrg As Range, sh As String
    sh = ActiveSheet.Name
    bleu = RGB(145, 200, 250)
    blanc = RGB(255, 255, 255)
    couleur = bleu
    With Sheets(sh)
        tablo = .[ColonneDates].Value
        Set xrg = .[ColonneDates].Rows(1)
        xrg.Interior.Color = couleur
        For i = 2 To UBound(tablo)
            Set xrg = xrg.Offset(1)
            If Year(tablo(i, 1)) <> Year(tablo(i - 1, 1)) Then couleur = IIf(couleur = bleu, blanc, bleu)
            xrg.Interior.Color = couleur
        Next i
    End With
End Sub
Encore merci pour ton aide.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour