Mise en forme conditionnelle & les dates

Boubix

XLDnaute Nouveau
Bonjour,

Je dois réaliser un plan d'Actions .xls.

Voilà comment est élaboré ce fichier,
9 colonnes : ID, Origine, action, Responsable, Echéance, Etat, Urgence, Date de réalisation, Commentaire. En haut de ce fichier, j'ai la date du jour "=aujourd'hui()".

J'aimerais que les lignes se surlignent d'une couleur ou d'une autre, en fonction de la date d'échéance.

Par exemple :

Si l'échéance = date du jour - 4, alors on surligne la ligne en orange.
Si l'échéance = date du jour - 1, alors on surligne la ligne en rouge.


J'ai regardé un peu partout, on parle de script vbs, et tout et tout... Mais je n'y connais pas grand chose !

Je vous remercie pour votre aide.

PS : Je vous ai mis le fichier sur lequel je travaille.
 

Pièces jointes

  • Plan d'Actions ITS NO.xlsx
    14.3 KB · Affichages: 222
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : Mise en forme conditionnelle & les dates

Bonjour Boubix,

Les macros auraient pu être évoquées pour les cas où des utilisateurs (sous Xl2000 et 2003) souhaitaient plus de 3 Mises en Forme Conditionnelles.
Tu ne rencontreras pas le même souci sous Xl2007!

Sélectionne dans la feuille "Actions ouvertes", la plage A3:J42, puis dans l'onglet Accueil > Mise en forme conditionnelle > Gérer les règles
Deux règles existent dans le fichier joint, vois si tu t'y retrouves ... et n'hésite pas à repasser par ici, si ce n'est pas clair ... ou si je me suis trompé!
 

Pièces jointes

  • Boubix.xlsx
    14.1 KB · Affichages: 385
  • Boubix.xlsx
    14.1 KB · Affichages: 413
  • Boubix.xlsx
    14.1 KB · Affichages: 412

Boubix

XLDnaute Nouveau
Re : Mise en forme conditionnelle & les dates

Merci pour ce retour rapide...
C'était presque ça, mais ça m'a bien aidé ! J'ai par contre découvert un autre problème.

J'ai modifié les formules.
Quand la date du jour est à 1 jour de l'échéance, la ligne passe en rouge.
Quand la date du jour est à 4 jours de l'échéance, la ligne passe en orange.
Quand la date du jour est à + de 4 jours de l'échéance, la ligne reste sous affichage normal, en blanc.

Certaines lignes changent de couleurs, d'autres non...
Pourriez-vous me dire ou je pêche ?

Sinon, une autre chose, comment dois-je faire pour couper/coller ?
Quand une action est close, j'aimerais que cette action soit coupée et collée dans l'onglet "actions closes".


Je vous renvoie mon fichier, merci pour vos conseils.


Boubix.
 

Pièces jointes

  • Boubix.xlsx
    14.1 KB · Affichages: 198
  • Boubix.xlsx
    14.1 KB · Affichages: 205
  • Boubix.xlsx
    14.1 KB · Affichages: 213
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : Mise en forme conditionnelle & les dates

Bonsoir Boubix,

Quand la date du jour est à 1 jour de l'échéance, la ligne passe en rouge. Cette règle doit, dès lors, être en première position (à mon avis) et quid en cas d'égalité ? J'ai mis en rouge également
Quand la date du jour est à 4 jours de l'échéance, la ligne passe en orange.
Quand la date du jour est à + de 4 jours de l'échéance, la ligne reste sous affichage normal, en blanc. ... donc on ne prévoit rien, me semble-t-il (les cellules conservent leur format initial) :confused:
J'ai utilisé la fonction ET dans les MFC ... à toi de voir, de tester et d'adapter, si besoin.
 

Pièces jointes

  • Boubix.xlsx
    14.1 KB · Affichages: 248
  • Boubix.xlsx
    14.1 KB · Affichages: 244
  • Boubix.xlsx
    14.1 KB · Affichages: 233

Boubix

XLDnaute Nouveau
Re : Mise en forme conditionnelle & les dates

Merci pour ta réponse Modeste.

Mais ça fonctionne presque !
J'ai réussi en bidouillant à faire ce que je voulais.

Pour la fonction : "ne rien faire si c'est > à la date du jour +4", ça fonctionne. J'ai ajouté malgré tout une troisième fonction qui remplit les cellules en blanc si ça dépasse la date du jour +4.
Par contre, ça ne fonctionne pas si la date d'échéance est vide. Comment faire ? J'ai intégré ça dans la troisième formule de remplissage en blanc, mais ça n'a pas l'air très efficace...

Et une autre chose Modeste :
J'aimerais que quand l'état d'une action passe à "Terminé" de la liste de choix, la ligne qui correspond à l'action soit coupé / collé à la suite des actions dans l'onglet "Actions closes".


Merci pour ton aide précieuse Modeste.

Je te joins le fichier en PJ.
 

Pièces jointes

  • Boubix.xlsx
    14.8 KB · Affichages: 197
  • Boubix.xlsx
    14.8 KB · Affichages: 212
  • Boubix.xlsx
    14.8 KB · Affichages: 215

Modeste

XLDnaute Barbatruc
Re : Mise en forme conditionnelle & les dates

Bonsoir Boubix, le forum,

Ravi que ça fonctionne (... presque :eek:) Quant à moi, j'ai un peu de mal à m'y retrouver: en fin de compte, tu as 6 MFC (3 s'appliquent à la plage $A$3:$I$42, les 3 autres à la plage $I$18:$I$21 ... parfois avec des conditions identiques, parfois des conditions différentes :confused:)
Dans les explications que tu donnes ici,
Quand la date du jour est à 4 jours de l'échéance, la ligne passe en orange.
... c'est la même chose que
Si l'échéance = date du jour - 4, alors on surligne la ligne en orange.
??? Bref, je nage un peu, là!


Pour ce qui est de
J'aimerais que quand l'état d'une action passe à "Terminé" de la liste de choix, la ligne qui correspond à l'action soit coupé / collé à la suite des actions dans l'onglet "Actions closes".
Je crains que seule une macro soit envisageable ... et là, c'est une autre paire de manches !!
 

Lermiton

XLDnaute Nouveau
Re : Mise en forme conditionnelle & les dates

Bonsoir à tous.

Je suis sous Excel 2003 et ne peux donc pas lire ton fichier, Boubix, mais je crois pouvoir répondre à tes 2 questions, par une macro (solution qu'évoque Modeste) qui devrait fonctionner chez toi, au nom de la "compatibilité ascendante".

Elle est écrite en supposant que, sur les deux feuilles "Échéancier" et "Actions closes" :
- la ligne 1 soit une ligne de titre de la feuille (donc ligne NON vide)
- la ligne 2 soit vide pour faciliter le tri des tableaux
- la ligne 3 soit la ligne des titres des colonnes
sinon, ça pourrait planter.

Les lignes entre J -4 inclus et J-2 inclus sont surlignées en orange, celles entre J - 1 inclus et J inclus ou qui ont dépassé l'échéance en rouge, et les lignes qui n'ont pas d'échéance en bleu clair. Les actions closes sont transférées dans la feuille "Actions closes" par un couper-coller.

Le code, à appeler par un bouton "Rafraichir" inséré dans la feuille "Échéancier", est :
Code:
Sub Surligneur()
    Dim r As Integer
    Dim c As Integer
    Dim x As Integer
    Dim Ecart As Integer
    Dim ShE As Worksheet
    Dim ShC As Worksheet

Rem     Définit les feuilles de travail
    Set ShE = ThisWorkbook.Sheets("ECHEANCIER")
    Set ShC = ThisWorkbook.Sheets("ACTIONS CLOSES")
    
Rem     Supprime le surlignage précédent dans l'échéancier
    ShE.Cells.Interior.ColorIndex = xlNone

Rem     Désactive la mise à jour de l'écran pour améliorer la rapidité et le confort visuel
    Application.ScreenUpdating = False

Rem     Traitements
    ' Suppose que la ligne de titres du tableau est à la ligne 3
    ' traite de la fin du tableau jusqu'à sa première ligne de données
    For r = ShE.UsedRange.Rows.Count To 4 Step -1
        
        ' ignore les lignes vides
        If Application.WorksheetFunction.CountA(ShE.Range(Cells(r, 1), Cells(r, 9))) = 0 Then
            GoTo ignore
        End If

        If IsDate(Cells(r, 8)) Then
            ' une date de réalisation a été saisie donc la ligne passe dans la feuille "Actions closes"
            x = ShC.UsedRange.Rows.Count + 1
            ShE.Rows(r).Cut
            ShC.Activate
            ShC.Cells(x, 1).Select
            ActiveSheet.Paste
            Application.CutCopyMode = False
            ShC.Rows(x).Interior.ColorIndex = xlNone
            ShE.Activate
            ShE.Rows(r).Delete

        ElseIf IsDate(ShE.Cells(r, 5)) Then
            ' surlignage pour les actions sans date de réalisation
            Ecart = ShE.Cells(r, 5) - Date
            Select Case Ecart
                Case Is > 4
                    ShE.Range(Cells(r, 1), Cells(r, 9)).Interior.ColorIndex = xlNone
                Case Is > 1
                    ShE.Range(Cells(r, 1), Cells(r, 9)).Interior.Color = RGB(255, 200, 0)
                Case Is <= 1
                    ShE.Range(Cells(r, 1), Cells(r, 9)).Interior.Color = RGB(255, 0, 0)
            End Select
        
        Else
            ' surligne en bleu clair les actions sans échéance
            ShE.Range(Cells(r, 1), Cells(r, 9)).Interior.Color = RGB(160, 255, 255)
            
        End If
ignore:
    Next

Je joins un exemple, qui contient en prime un bouton pour chercher le code RGB des couleurs si celles que j'ai mises ne te conviennent pas.

Bon courage.
 

Pièces jointes

  • Surligneur.zip
    21.4 KB · Affichages: 105

jonothon9

XLDnaute Nouveau
Re : Mise en forme conditionnelle & les dates

Bonjour,
J ai la meme question que Boubix concernant la mise en forme conditionnelle et dates.
J'ai regarder toute la discution et épucher les fichiers excel envoye entre vous masi il reste certaines zone d'ombre dans la comprehension du languge utiliser sous excel.Quelqu un connaitrait til un site ou ce language est expliquer de façon tres claire.
Merci d'avance
 

Discussions similaires

Statistiques des forums

Discussions
312 415
Messages
2 088 238
Membres
103 779
dernier inscrit
FrancoisB2