Supprimer couleur dernière ligne du mois sans MFC

Me voici revenu avec un autre "peti souci" mais qui ne peut se voir que le lendemain du dernier jour du mois.

Quelqu'un m'a fait une macro dans ThisWorkbook qui est celle ci-dessous.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)    'La Macro COLORISE ne sert plus (mise en commentaires)

    Dim NombreJour As Integer
    Dim Ladate As Date
    Dim MoisSuivant As String
    Dim Plage As Range
    Dim Cel As Range
    Dim F As String
    Dim I As Integer
    Dim J As Integer

    If Target.Count > 1 Then Exit Sub

    Application.EnableEvents = False
    ' On recherche si la page est surveillée
    If IsDate("1/" & Sh.Name) Then 'plus simple non ???

        ' Calcul du nombre de jour dans le mois indiqué par le nom de la feuille
        NombreJour = Day(DateAdd("m", 1, DateValue(Sh.Name)) - 1)

        If Target.Row - 5 > Day(Date) Then

            Beep
            MsgBox "PAS LE BON JOUR"
            Target = ""
            Range(Cells(Target.Row, 1), Cells(Target.Row, 7)).Interior.ColorIndex = 8
        Else
            ' Surveille la plage du 1er au dernier jours du mois
            If Not Intersect(Range("B6:C" & 5 + NombreJour), Target) Is Nothing Then
                ' Reconstruit la date de fonction du nom de la feuille et du numéro de ligne sélectionnée
                Ladate = DateSerial(Split(Sh.Name, " ")(1), Month(DateValue(Sh.Name)), Target.Row - 5)
                ' Si la colonne B et la colonne C est vide on efface la date
                Range("A" & Target.Row) = IIf(Range("B" & Target.Row) & Range("C" & Target.Row) = "", "", Ladate)
                If Range("A" & Target.Row) = "" Then Cells(Target.Row, 1).Resize(, 7).Interior.ColorIndex = 8

                ' si la ligne modifiée est la dernière du mois et que la colonne est la C
                If Target.Row = NombreJour + 5 And Target.Column = 3 Then
                    ' On construit le nom de la feuille du mois suivant
                    MoisSuivant = MonthName(Month(DateAdd("m", 1, DateValue(Sh.Name)))) & " " & Year(DateAdd("m", 1, DateValue(Sh.Name)))
                    ' On va vérifier si la feuille existe
                    If FeuilleExiste(MoisSuivant) = False Then Exit Sub
                    ' La feuille existe
                    With Sheets(MoisSuivant)
                        'On la rend visible
                        .Visible = xlSheetVisible
                        ' On masque celle que l'on vient de finir
                        ActiveSheet.Visible = xlSheetHidden
                        ' et on la sélectionne
                        .Select
                    End With
                End If
            End If

            If Range("A" & Target.Row) <> "" Then

                Application.ScreenUpdating = False

                Set Plage = Range(Cells(6, 1), Cells(6 + NombreJour, 1)).Resize(, 7)

                'mémorise le formatage de la colonne A puis passe la colonne A au format "Standard" pour avoir des valeurs de type Long
                'F = Plage.Columns(1).NumberFormat   'Si cette ligne de macro ne fonctionne pas appliquer la ligne ci-dessous
                If IsNull(Plage.Columns(1).NumberFormat) Then F = "dddd dd mmmm yyyy" Else F = Plage.Columns(1).NumberFormat
                Plage.Columns(1).NumberFormat = "General"

                'effectue la recherche de la date en type Long sur la colonne A
                Set Cel = Plage.Columns(1).Find(CLng(Date), , xlValues, xlWhole)

                'puis rétabli le format
                Plage.Columns(1).NumberFormat = F

                Plage.Interior.ColorIndex = 8
                'si trouvée, mets la plage au fond 8 puis colore la ligne du jour
                If Not Cel Is Nothing Then

                    Range(Cells(Cel.Row, 1), Cells(Cel.Row, Plage.Columns.Count)).Interior.ColorIndex = 17
                    J = Cel.Row - 1
                End If
                If J = 0 Then J = Plage.Rows.Count + 6
                'colore ensuite les cellules en fonction du jour
                For I = 6 To J
                    If Cells(I, 1).Value <> "" Then
                        If Application.CountIf(Sheets("Menu").Range("JOursFériés"), Range("A" & I)) > 0 Or Weekday(Range("A" & I), vbMonday) > 5 Then
                            Range("A" & I & ":G" & I).Interior.ColorIndex = 38
                        Else
                            Range("A" & I).Interior.ColorIndex = 15
                            Range("B" & I).Interior.ColorIndex = 6
                            Range("C" & I).Interior.ColorIndex = 4
                            Range("D" & I & ":G" & I).Interior.ColorIndex = 43
                        End If
                    End If
                Next I
                Application.ScreenUpdating = True
            End If
        End If
    End If
  Application.EnableEvents = True
End Sub

Ce matin c'est passé automatiquement au 1er mars la dernière ligne de février (ligne 33) reste en couleur (interior color 17)

Pourrait-on faire la ou les modifs pour que les couleurs des colonnes A =15, B = 6, C =4 puis D à G = 43 retrouvent leurs couleurs.

Merci à vous pour vos éventuels retours

Cordialement

Fichier toto joint

Pour être "réglo" j'ai posté aussi sur autre forum pour multiplier les chances

9toto.zip (57.96 Ko)

Bonjour Al87 le forum

C'est très bien d'être "réglo", merci pour nous.

Si tu n'as pas de réponse, tu le rediras je te le ferai.

a+

Papou

Bonjour Al87 le forum

C'est très bien d'être "réglo", merci pour nous.

Si tu n'as pas de réponse, tu le rediras je te le ferai.

a+

Papou

Bonjour paritec

Oui je suis réglo car je n'aimerais pas qu'on me le fasse.

Tu peux y aller car ça me tourture l'esprit. C'est assez compliquer. Ça dépend des mois en l'occurence février de cette année s'arrête au 28 celui de l'année prochaine au 29.

Des mois c'est 30 jours (ligne 35) d'autres 31 jours (ligne 36)

Ça peut arriver que ça tombe sur un jour férié...

Je vais mettre sur l'autre forum que c'est résolu.Si tu peux y arriver tu feras un heureux.

Prend ton temps.

Merci à toi

Cordialement

Re bonjour Al87 le forum

je viens d'ouvrir ton fichier et une chose me chagrine, tu parles de nombre de jours qui change, mais tu as dans ta macro

NombreJour = Day(DateAdd("m", 1, DateValue(Sh.Name)) - 1)

c'est bien destiné à trouver le nombre de jours du mois!!!!!!!

Je vais retourner voir ton fichier et essayer de comprendre ce que tu veux, car pour moi c'est pas clair et je découvre le fichier

a+

Papou

Re al87 le forum

c'est quoi toutes tes lignes N°3 avec Vendredi 1 septembre 2006 ???????????????????????????

Nous sommes en 2019 au cas ou tu ne le saurais pas???

a+

Papou

Re-paritec

Exact c'est bien pour trouver le nombre de jours. Ce fichier date de 2006. J'ai fait des améliorations à la marge depuis.

En ce qui concerne le vendredi 1er septembe c'est depuis quand je marche après mon opération à coeur ouvert de juin 2006.

C'est très simple mais comme je m'exprime mal... et puis moi et le VBA!!!

Comme tu peux le constater le 28 février reste en mauve (couleur 17) alors qu'il doit "partir" et passer au 1er mars en mauve et la ligne du 28 février doit retrouver ses couleurs d'origne.

C'est beaucoup trop compliqué pour moi

Je suis sous EXCEL 2003

Bon courage

Cordialement

Bonjour AL87 le forum

je n'ai pas voulu chercher toutes les conditions de ta macro, alors j'ai rajouté une macro qui ne gère que les dernières lignes

maintenant si tu veux m'expliquer le pourquoi de ta macro, je regarderai de plus près.

là tu peux tester tu changes la date de ton PC au 28/02/2019

tu mets en gris la ligne du 28 et ensuite tu rechanges la date et tu passes au 02/03/2019 et tu verras, et tu me redis

a+

Papou

5al87-v3.zip (68.13 Ko)

Re paritec

Super un GRAND merci

Il reste les samedi dimache (interior Color 38)

Et jours fériés (interior Color 38) voir tableau page MENU

Après ça sera nickel

Mais alors quel boulot

A+

Fichier toto V001

3toto-v001.zip (60.95 Ko)

Ré bonjour al87 le forum

Mais explique le pourquoi de toutes ces couleurs ??

Je pense que la macro est bien compliqué pour pas grand chose!!!

Donne moi toutes les conditions te je m’en occupe !!!

Autrement pour les samedi et dimanche et fériés, tu veux colorier systématiquement tous les dimanches samedi et fériés de toutes les feuilles ??? Et une fois coloriées les cellules doivent rester en couleur????

Merci de répondre précisément que je te fasse l’intégralité

A plus

Papou

Re-paritec

C'est exactement ce que tu viens de décrire que je veux...si c'est possible

Je veux différencier les samedi dimanche et jours fériés des autres jours de la semaine

"Je pense que la macro est bien compliqué pour pas grand chose!!!"...TU AS RAISON mais un "vieux maniaque" restera toujours un "vieux maniaque" !!!

"Et une fois coloriées les cellules doivent rester en couleur????" => Oui

A+

Re Al87 le forum

Mais donne moi toutes les conditions et je vais regarder pour simplifié ta macro

Si tu ne me donnes pas toutes tes conditions je ne pourrai pas le faire

le fait d'être maniaque n'a rien a voir moi aussi j'aime les choses bien faites, mais bien ne signifie pas 1 km de macro pour une action qui apparemment est hyper simple vu le fichier !!!

Colorier une ligne chaque fois qu'on l'ajoute et dire pas bonne date si la ligne supérieure n'est pas la date-1

et colorier en gris le dernier jour de la liste , mais il y a quoi d'autre ????????????????????????

a+

Papou

Re paritec

Le matin lorsque j'ouvre mon fichier ça affiche 3 (mis 3 dans macro) et ça colorie en interior color 17 et si j'ouvre le fichier après 12:00 ça affiche 3 pour l'après-midi.

Le lendemain cette ligne "reprend ses couleurs" c'est à dire 15 6 4 43 43 43 43 aisi de suite mais ça peut-être un samedi comme aujourd'hui un dimanche ou un jour férié et dans ce cas interior color est 38.

"colorier en gris le dernier jour de la liste" tu veux dire colonne A?

Je pense que c'est toutes les conditions.

Ne t'embête pas trop quand même car ce que tu as fait fonctionne très bien c'est juste si dernier jour du mois tombe un samedi dimanche ou jour férie dans la macro que tu as fait

A+

1toto-v001.zip (52.26 Ko)

Re bonjour Al87 le forum

ton fichier en retour avec tes samedi dimanche et jours fériés en 38

j'ai colorié que la colonne A en 38 j'espère que c’est cela que tu souhaitais

a+

Papou

3al87-v4.zip (67.90 Ko)

Re paritec

C'est exactement ça sauf que c'est la ligne 7 entière qui doit être en interior color 17 et non en 38.

Demain la ligne 7 passera en 38

Demain la ligne 8 sera en 17 et lundi la ligne 8 passera en 38 après couleurs normales

On le tient presque

A+

Bonsoir AL87 le forum

Est-ce que tu ne te moquerais pas un peu de moi??????

aujourd'hui un dimanche ou un jour férié et dans ce cas interior color est 38.

C'est qui, qui a écrit cela ???? Regarde ton avant dernier post.

Pour la ligne complète OK, mais c'est écrit ou que c'est toute la ligne qu'il faut colorier???

je te réclame des explications et je n'ai que des bribes et ensuite bah cela ne va pas !!!!!

j'aime beaucoup!!!

bon alors les dimanches samedi et fériés c'est en 17 maintenant???

j'ai écrit aussi :

Et une fois coloriées les cellules doivent rester en couleur????

Toutes les cellules ou lignes qui sont des dimanches samedi et fériés restent dans la couleur 17 ???

à te relire

a+

Papou

Re paritec mal expliqué

Non je me moque JAMAIS surtout pas mais je m'explique très mal tout vient de là

Ce que je voulais dire c'est que la ligne de ce jour ligne 7 doit être en 17 pour aujourd'hui (c'est à dire que 17 et 38 vont se chevaucher)

Demain elle passera en 38

Celle de demain ligne 8 passera en 17 (c'est à dire que 17 et 38 vont se chevaucher aussi) et après demain la ligne 8 passera en 38

Après couleurs normales

A+

Te bonsoir al87 le forum

Alors là on dépasse l’entendement, maintenant on va avoir des couleurs qui se chevauche??????

Bah là tu es trop fort pour moi , moi je suis trop con je ne sais pas ce que c’est que des couleurs chevauchées???

Je demande si les samedi dimanche est fériés doivent rester en couleur tu réponds oui, et maintenant je comprends que tu veux en fait colorier uniquement la dernière ligne affichée dans un mois donc dans les autres feuilles exemple le 01/01/2019 doit rester en gris et non en rose???

Bref tu t’exprimes mal alors pour arriver à comprendre???

Maintenant explications claires et précises avant que je ne fasse quoi que ce soit

Première explication couleur chevauchées là ??????????????

C’est où 17 ou 38 mais pas les deux.

A plus

Papou

Re paritec

Avant de continuer je vais faire tourner le programme et je reviendrais car on ne se comprend plus.

Exemple:

Le 31 mars 2019 sera un dimanche donc ça passera le 1er avril en couleur 17 et la ligne 36 du mois précédent (dernière ligne du mois de mars devra rester en couleur 38

Je reviendrais en fin de mois pour voir si ça le fait.

Pour ce que tu a fait au début fonctionne très bien car la dernière ligne de février est un jeudi donc couleurs normales.

Un GRAND MERCI et VRAIMENT TOUTES MES EXCUSES

INCOMPRÉHENSION TOTALE

Bonne fin de soirée

Re paritec

J'ai "jonglé" un peu avec ta macro et fait un test ça a l'air de fonctionner. J'ai gardé mon ancienne "structure" .

J'ai encore un petit souci j'ai une ligne 37 dans le mois qui ne veut pas se "faire "supprimer"!!!

Elle revient toujours à l'enregistrement

Encore toutes mes excuses pour le temps passé à mon "petit" souci" mais j'y tenais!!!

Bonne fin de soirée à toi et au forum

Cordialement

4al87-v3.zip (74.72 Ko)

Bonjour al87 le forum

J'ai "jonglé" un peu avec ta macro

bah je ne sais pas ce que tu as pu faire avec, car elle est faite pour une chose bien précise et tu n'es pas fichu d'expliquer correctement ton souhait.

J'ai encore un petit souci j'ai une ligne 37 dans le mois qui ne veut pas se "faire "supprimer"!!!

bah oui tu as un petit souci!!!!!

Moi mon souci est de ne toujours pas savoir ce que tu veux.

Ou alors ce que tu veux c'est simplement une seule ligne dans toutes tes feuilles, donc tu ne souhaites que seulement que la dernière ligne correspondant à la date du jour soit en 17

Mais est-ce que c'est bien cela que tu ne veux que une seule ligne dans toutes tes feuilles de coloriée??

a+

Papou

Rechercher des sujets similaires à "supprimer couleur derniere ligne mois mfc"