7 jours, 7 couleurs en A:A et gris, gris clair en C:C Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
v
variable
Membre habitué
Membre habitué
Messages : 100
Inscrit le : 2 octobre 2013
Version d'Excel : 2010 FR

Message par variable » 12 mai 2017, 00:27

Bonsoir à tous,

Voilà dans le fichier joint, je tente de faire pour que chaque jour ai sa couleur, mais j'ai du mal à le faire pour toute la colonne de manière automatique : exemple si la cellule contient lundi telle couleur mardi telle couleur et dans la colonne C si elle contient des données rendre le background en gris, puis la suivante en gris claire, puis en gris etc...

Dans le code suivant je n'ai réussi à faire ce que je veux que pour 7 cellules en colonne A, j'ai pensé faire une boucle mais ca ne marche pas. Pour la colonne C je ne vois pas comment dir en vba gris ou gris claire une fois sur deux. J'ai coloré manuellement en colonne C pour donner un exemple.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 
 If Range("A1").Value = "Lundi" Then
 Range("A1").Interior.Color = RGB(255, 153, 153)
 Else
 Range("A1").Interior.Color = xlNone
 End If
 
 If Range("A2").Value = "Mardi" Then
 Range("A2").Interior.Color = RGB(255, 179, 128)
 Else
 Range("A2").Interior.Color = xlNone
 End If
 
 If Range("A3").Value = "Mercredi" Then
 Range("A3").Interior.Color = RGB(255, 255, 153)
 Else
 Range("A3").Interior.Color = xlNone
 End If
 
 If Range("A4").Value = "Jeudi" Then
 Range("A4").Interior.Color = RGB(255, 204, 255)
 Else
 Range("A4").Interior.Color = xlNone
 End If
 
 If Range("A5").Value = "Vendredi" Then
 Range("A5").Interior.Color = RGB(219, 255, 219)
 Else
 Range("A5").Interior.Color = xlNone
 End If
 
 If Range("A6").Value = "Samedi" Then
 Range("A6").Interior.Color = RGB(219, 219, 255)
 Else
 Range("A6").Interior.Color = xlNone
 End If
 
 If Range("A7").Value = "Dimanche" Then
 Range("A7").Interior.Color = RGB(200, 200, 200)
 Else
 Range("A7").Interior.Color = xlNone
 End If
 

End Sub

Pouvez-vous m'apportez vos lumières ?
Merci :)
forum r7.xlsm
(17.06 Kio) Téléchargé 5 fois
Avatar du membre
PapouMAC
Membre fidèle
Membre fidèle
Messages : 203
Appréciations reçues : 5
Inscrit le : 15 novembre 2015
Version d'Excel : MAC 2011 FR

Message par PapouMAC » 12 mai 2017, 01:06

Bonjour

Voici une piste à l'aide de MFC.
forum r7-1.xlsm
(17.07 Kio) Téléchargé 7 fois
L'indulgence, c'est de ne pas oublier ses débuts.
Excel 2016 MAC
MAC Pro Quad-Core, MACOS 10.13.6
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'201
Appréciations reçues : 444
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 12 mai 2017, 08:00

Bonjour,
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim clr, k%, i%, jsx$
    clr = Array(xlNone, RGB(200, 200, 200), RGB(255, 153, 153), RGB(255, 179, 128), RGB(255, 255, 153), _
     RGB(255, 204, 255), RGB(219, 255, 219), RGB(219, 219, 255), RGB(191, 191, 191), RGB(242, 242, 242))
    If Target.Column = 1 Then
        jsx = LCase(Target.Value)
        For i = 1 To 7
            If WeekdayName(i, , 1) = jsx Then k = i: Exit For
        Next i
    ElseIf Target.Column = 3 Then
        If Target.Value <> "" Then k = 8 + (Target.Row Mod 2)
    End If
    Target.Interior.Color = clr(k)
End Sub
Cordialement.

Petite modification à apporter (tu vas pouvoir le faire toi-même :
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim clr, k%, i%, jsx$
    clr = Array(xlNone, RGB(200, 200, 200), RGB(255, 153, 153), RGB(255, 179, 128), RGB(255, 255, 153), _
     RGB(255, 204, 255), RGB(219, 255, 219), RGB(219, 219, 255), RGB(191, 191, 191), RGB(242, 242, 242))
    [surligner]If Target.Column = 1 Or Target.Column = 3 Then[/surligner]
        If Target.Column = 1 Then
            jsx = LCase(Target.Value)
            For i = 1 To 7
                If WeekdayName(i, , 1) = jsx Then k = i: Exit For
            Next i
        ElseIf Target.Column = 3 Then
            If Target.Value <> "" Then k = 8 + (Target.Row Mod 2)
        End If
        Target.Interior.Color = clr(k)
    [surligner]End If[/surligner]
End Sub
Parties surlignées à ajouter.
La version précédente t'empêcherait de mettre toute couleur ailleurs !

Cordialement.
variable_forum r7.xlsm
(19.48 Kio) Téléchargé 5 fois
v
variable
Membre habitué
Membre habitué
Messages : 100
Inscrit le : 2 octobre 2013
Version d'Excel : 2010 FR

Message par variable » 12 mai 2017, 17:31

Je suis navré du retard de ma réaction je viens juste de rentrer.

@MFerrand :
Chapeau bas monsieur MFerrand, ca se lit comme un poème, c'est de la mécanique de précision Suisse comme à votre habitude.
Je vous remercie beaucoup.

@PapouMac :

Un grand merci pour votre idée également, cependant j'aurais une question à vous poser avant de cloturer, car vos la coloration
continue à se faire au delà de D$1:D$7. Si j'écris en d8 il à joute à la règle D$1:D$8 et ainsi de suite et je ne comprends pas.
Pouvez-vous me donner une petite explication, je vous remercie.

Règles MFC dans le fichier

Colonne C
=ESt.PAIR(LIGNE) =$C$1:$C$7
=ESt.IMPPAIR(LIGNE) =$C$1:$C$7

Colonne D
La valeur de la cellule contient
Texte spécifique contenant Dimanche =$D$1:D$7
Texte spécifique contenant Lundi =$D$1:D$7
Avatar du membre
PapouMAC
Membre fidèle
Membre fidèle
Messages : 203
Appréciations reçues : 5
Inscrit le : 15 novembre 2015
Version d'Excel : MAC 2011 FR

Message par PapouMAC » 12 mai 2017, 17:54

Bonjour

Apparemment lors de la recopie la MFC est elle aussi recopiée, le moyen pour éviter cela c'est de ne pas faire de recopie, dans le fichier fourni après dimanche j'ai mis lundi et de là on peut faire une recopie sans la MFC.
Pour la colonne C :
Ligne(), revoit le numéro de la ligne, donc si l'on se trouve sur la ligne 1, celle-ci est impaire donc c'est la MFC =EST.IMPAIR(LIGNE()) qui s'applique, dans le cas contraire c'est la MFC =EST.PAIR(LIGNE()) qui s'applique.
forum r7-2.xlsm
(17.04 Kio) Téléchargé 4 fois
L'indulgence, c'est de ne pas oublier ses débuts.
Excel 2016 MAC
MAC Pro Quad-Core, MACOS 10.13.6
v
variable
Membre habitué
Membre habitué
Messages : 100
Inscrit le : 2 octobre 2013
Version d'Excel : 2010 FR

Message par variable » 12 mai 2017, 23:00

C'est super, j'ai les deux méthodes super efficaces pour faire le coloriage de cellules de manière automatique encore un grand merci vous êtes formidables ! Je ✔ le topic,
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message
  • Colorer pour voir plus clair
    par bcbg974 » 15 décembre 2016, 21:13 » dans Excel - VBA
    5 Réponses
    106 Vues
    Dernier message par MFerrand
    16 décembre 2016, 09:57
  • clearcontents pas tres clair
    par caje17 » 13 janvier 2017, 18:36 » dans Excel - VBA
    2 Réponses
    143 Vues
    Dernier message par caje17
    13 janvier 2017, 19:24
  • Différence couleurs
    par BrunoDS78 » 28 novembre 2018, 11:02 » dans Excel - VBA
    3 Réponses
    106 Vues
    Dernier message par BrunoDS78
    28 novembre 2018, 14:16
  • Changement de couleurs
    par RIPcagou » 15 juillet 2014, 22:51 » dans Excel - VBA
    6 Réponses
    278 Vues
    Dernier message par RIPcagou
    17 juillet 2014, 21:18
  • Formules de Couleurs
    par MikeSG » 24 novembre 2016, 14:38 » dans Excel - VBA
    8 Réponses
    148 Vues
    Dernier message par MikeSG
    27 novembre 2016, 17:28
  • cellules couleurs
    par ericp » 8 septembre 2018, 10:37 » dans Excel - VBA
    14 Réponses
    201 Vues
    Dernier message par ericp
    16 septembre 2018, 13:06