Mise en forme automatique DATE

Fermé
audreyBD - 7 déc. 2009 à 11:24
ptidavid Messages postés 1273 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 16 février 2010 - 8 déc. 2009 à 13:17
Bonjour,

Je cherche une formule pour qu'Excel mette en couleur les dates correspondants au mois en cours (je pense que ce sera une mise en forme conditionnelle mais je ne trouve pas la formule).
Le format de la date est jj/mm/aaaa et suite à une mise en forme cellule, elle apparaît à l'écran mois.-année.

Pourriez-vous m'aider ? N'hésitez pas à me contacter pour plus d'informations.

Je vous remercie d'avance !

Audrey

7 réponses

ptidavid Messages postés 1273 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 16 février 2010 104
7 déc. 2009 à 13:06
Bonjour à toi,

Si on essayait d'écrire une formule, ça donnerait :
SI(MOIS(AUJOURDHUI())=MOIS(cellule),couleur cellule = ...)

Cependant après test, les cellules ne changent pas de couleur :
http://kwcu8g.blu.livefilestore.com/y1pC-KjFQNSigoygqXbfyrmy7GU8efGQQKnkiM8wTvG0W5C8dIOmaam2R66CKAWtIfMdD27wGJOjKkPOudkHMkk-O8X3KlTTxcZ/mise%20forme%20cond2.PNG

Donc je me demande si une macro serait pas mieux. A moins qu'il y ait une autre possibilité.
0
Merci Ptitdavid !
Est-ce que tu pourrais m'aider pour la macro : je suis débutante excel et curieuse en même temps.
Résultat, je suis arrivée à faire faire des calculs complexes mais je n'ai pas été formée !

Je te remercie d'avance.

Audrey
0
ptidavid Messages postés 1273 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 16 février 2010 104 > audreyBD
7 déc. 2009 à 14:27
Hum, ça va être un peu long, mais tu peux déjà commencer par lire ce post que j'ai écrit il ya quelques jours :
https://forums.commentcamarche.net/forum/affich-15479489-couleur-dans-excel

La démarche pour éditer la macro sera similaire, seul le contenu de la macro diffèrera. Si tu as des questions, n'hésite pas.
Pendant ce temps, moi je vais écrire la macro et la tester :-) Et je reviens sous peu.



0
ptidavid Messages postés 1273 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 16 février 2010 104 > ptidavid Messages postés 1273 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 16 février 2010
7 déc. 2009 à 15:24
Pas de questions à propos de mon post? De mon côté, j'ai fini la macro, je suis en train de la tester.
0
audreyBD > ptidavid Messages postés 1273 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 16 février 2010
7 déc. 2009 à 15:34
Désolée, j'étais en réunion !!!

Je n'ai pas encore eu le temps de lire le ptit cours sur la macro - je fais un débrief et je regarde d'ici 10 min !

Encore merci :D
0
ptidavid Messages postés 1273 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 16 février 2010 104 > audreyBD
7 déc. 2009 à 15:37
Okay. De mon côté j'ai terminé le test de la macro et ça fonctionne. La voici :

Private Sub Worksheet_Activate()

Range("A1:I100").Select
For Each Cell In Selection
    If (Month(Cell.Value) = Month(Date) And Year(Cell.Value) = Year(Date) And Not IsEmpty(Cell.Value)) Then
        Cell.Interior.ColorIndex = 15 'Colorie la couleur de la cellule
    End If
Next

End Sub


Il ne te reste plus qu'à l'adapter à ta feuille Excel, notamment la sélection de cellules Range("A1:I100").Select, et à la tester toi aussi. Si tu as une quelconque question, n'hésite surtout pas.
0
Franck2744 Messages postés 219 Date d'inscription mardi 26 août 2008 Statut Membre Dernière intervention 30 septembre 2016 123
7 déc. 2009 à 15:56
Bonjour a tous,

J'édite et retire ce que j'ai dit, une grosse erreur dans ma formule, désolé ^^

Je regarde de mon coté

A+

Franck
0
ptidavid Messages postés 1273 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 16 février 2010 104
7 déc. 2009 à 16:01
Bonjour à toi,

Ca fonctionne chez toi? Parce que chez moi j'avais aussi essayé, mais soit Excel ne me faisait pas la mise en forme, soit il la faisait mal. Et pourtant à priori la formule que j'ai mise me semble juste (cf. le lien dans le post 1).

EDIT : ça me rassure, je viens de tester ta formule :-) Par contre si tu trouves la bonne formule, ça m'intéresse.
0
Franck2744 Messages postés 219 Date d'inscription mardi 26 août 2008 Statut Membre Dernière intervention 30 septembre 2016 123
7 déc. 2009 à 16:25
Donc, j'ai mis une date automatique AUJOURDHUI() dans la Cellule "A1".

Je sélectionne une cellule au hasard et je lui met une mise en Forme conditionnel:

"La Formule Est " "=ET(MOIS($A$1)=MOIS(B3);ANNEE($A$1)=ANNEE(B3))"

Exemple pour la Mise en fome en cellule "B3"

Tu peut ensuite "étaler" la mise en forme conditionnelle sur toutes les lignes et colonnes que tu le souhaites.

Franck

EDIT: ATTENTION, si ta cellule de référence Date Aujourdhui est vide --> toutes tes mises en forme conditionnelle dans les cellules vides considéreront que la formule est valide !! ^^

Faut juste bien penser a garder ta date de référence ^^
0
ptidavid Messages postés 1273 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 16 février 2010 104
7 déc. 2009 à 16:46
Et ça ne marche pas si tu marques directement cette formule pour mettre en forme B3 ?
"=ET(MOIS(AUJOURDHUI())=MOIS(B3);ANNEE(AUJOURDHUI())=ANNEE(B3))"
0
Franck2744 Messages postés 219 Date d'inscription mardi 26 août 2008 Statut Membre Dernière intervention 30 septembre 2016 123
7 déc. 2009 à 17:12
Quand je mets "La Formule est " c'est pour choisir dans la liste déroulante dans les Mises en formes Conditionnelles, Tu as le choix entre "La Valeur de la Cellule est " et "La Formule est ".

C'etait juste pour préciser, selon la formule entré ensuite, le choix dans la liste déroulante ne donne pas du tout le meme résuktat.

Je me suis peut etre mal exprimé au 1er coup, dsl ^^

Franck
0
ptidavid Messages postés 1273 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 16 février 2010 104
7 déc. 2009 à 17:22
Non en fait je parlais juste du fait que tu as inséré la date courante dans la case A1. Ca ne marchait pas si tu l'indiquais directement dans la formule sans l'affecter à une cellule?
0
audreyBD > ptidavid Messages postés 1273 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 16 février 2010
7 déc. 2009 à 18:29
Sorry de ne revenir que maintenant...
Je teste tout ça et je vous tiens au courant !
En tout cas merci !!!!!!!!!

Audrey
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
J'ai bien peur de m'être mal exprimée. Dans les cellules, la date a une forme jj/mm/aaaa
en fait je souhaite que :

- Si mois de la cellule = mois actuel alors violet
- Si mois de la cellule = mois actuel +1 alors vert
- Si mois de la cellule = mois actuel +2 alors bleu
- Si mois de la cellule < mois actuel alors rouge

Désolée pour le manque de clarté!

Merci pour vos réponses et votre patience.

Audrey
0
ptidavid Messages postés 1273 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 16 février 2010 104
7 déc. 2009 à 21:07
Ce n'est pas que tu te sois mal exprimée, c'est que tu ne t'étais pas exprimée :-) A priori, il y a juste quelques instructions à changer dans la macro. Je vais voir de mon côté.
0
ptidavid Messages postés 1273 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 16 février 2010 104 > ptidavid Messages postés 1273 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 16 février 2010
7 déc. 2009 à 21:22
Bon, voici la version corrigée :

Private Sub Worksheet_Activate()

Range("A1:I100").Select
For Each Cell In Selection
    If (Year(Cell.Value) = Year(Date) And Not IsEmpty(Cell.Value)) Then
        If (Month(Cell.Value) = Month(Date)) Then
            Cell.Interior.ColorIndex = 54
        Else
            If (Month(Cell.Value) = Month(Date) + 1) Then
                Cell.Interior.ColorIndex = 4
            Else
                If (Month(Cell.Value) = Month(Date) + 2) Then
                    Cell.Interior.ColorIndex = 32
                Else
                    If (Month(Cell.Value) < Month(Date) + 1) Then
                        Cell.Interior.ColorIndex = 3
                    End If
                End If
            End If
        End If
    End If
Next

End Sub


Je l'ai testée sur mon PC et ça marche. J'ai juste du changer la date, car on est en décembre et c'est le dernier mois de l'année :-) Teste-le à ton tour et dis-moi si ça te va ou si tu as besoin d'explications.

Sinon si tu veux changer les couleurs utilisées, tu trouveras les codes couleur sur ce site web :
http://dmcritchie.mvps.org/excel/colors.htm
Ils sont dans le tableau intitulé "ColorIndex -- 56 Excel Colors #colors56/#colorindex".

0
audreyBD > ptidavid Messages postés 1273 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 16 février 2010
7 déc. 2009 à 21:43
Bonsoir ptidavid,

Je viens de tester et rien ne se passe - je pense que j'ai fait une erreur quelque part !
Je recommence de suite et t'informe :)

En tout cas,merci :D
0
ptidavid Messages postés 1273 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 16 février 2010 104 > audreyBD
7 déc. 2009 à 21:47
Ca ne marche que pour la 1ère feuille Excel hein ;-) Si tu veux qu'elle marche pour toutes les feuilles, dis-le moi. Sinon, pour faire fonctionner la macro, il faut "activer" la 1ère feuille, cad. par exemple aller dans une autre feuille, puis revenir dans la 1ère. Et bien évidemment, il faut des dates dans des cellules... et là la macro se lancera.
0
audreyBD > ptidavid Messages postés 1273 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 16 février 2010
7 déc. 2009 à 22:11
Je l'ai bien enregistré mais ça ne fonctionne pas - je ne sais pas ce que j'ai pu faire de mal :(
J'ai fait un copier/coller de la macro donnée (en changeant juste range "A1:I100" par Range Q20:Q6000 (cellules concernées).
Merci beaucoup pour tout quand même :D
0
Franck2744 Messages postés 219 Date d'inscription mardi 26 août 2008 Statut Membre Dernière intervention 30 septembre 2016 123
7 déc. 2009 à 22:43
Ok, je me rends !

Avec mon vieux Office 2003 je ne peux aller au dessus de 3 Mises en Formes Conditionnelles :p

Mais je vais noter ta Macro Ptidavid, je suis sur quel me servirais, meme pour une autre situation ^^

Ciao

Franck
0
audrey-chou Messages postés 2 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 7 décembre 2009
7 déc. 2009 à 22:47
Merci Franck !
J'ai gardé ta formule (pour une autre partie de ma base de données ! :D

Bonne soirée
0
ptidavid Messages postés 1273 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 16 février 2010 104
7 déc. 2009 à 22:49
Ben moi avec Office XP, même une seule formule ne marche pas correctement :/ Tant mieux si ma macro te sert ;-) Moi idem, elles me servent beaucoup, même si elles me prennent aussi la tête par moments. Du moins pour les écrire.

Concernant ton autre question sur le tableau de projets, j'ai d'ailleurs commencé une macro mais c'est plus compliqué que je pensais. Si tu as des questions, n'hésite pas. Je répondrai si je peux.
0
ptidavid Messages postés 1273 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 16 février 2010 104 > ptidavid Messages postés 1273 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 16 février 2010
7 déc. 2009 à 22:55
Je t'ai envoyé un message privé avec mon adresse. A toi de jouer ;-)
0
ptidavid Messages postés 1273 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 16 février 2010 104 > ptidavid Messages postés 1273 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 16 février 2010
8 déc. 2009 à 10:29
Bonjour à toi,

Après avoir reçu ton fichier Excel, j'ai remodifié le code pour tenir compte des cellules qui contenaient autre chose que des dates. Revoici donc le code modifié :

Private Sub Worksheet_Activate()

Range("A1:H100").Select

For Each Cell In Selection
    If (IsDate(Cell.Value)) Then
        If (Year(Cell.Value) = Year(Date) And Not IsEmpty(Cell.Value)) Then
            If (Month(Cell.Value) = Month(Date)) Then
                Cell.Interior.ColorIndex = 54
            Else
                If (Month(Cell.Value) = Month(Date) + 1) Then
                    Cell.Interior.ColorIndex = 4
                Else
                    If (Month(Cell.Value) = Month(Date) + 2) Then
                        Cell.Interior.ColorIndex = 32
                    Else
                        If (Month(Cell.Value) < Month(Date) + 1) Then
                            Cell.Interior.ColorIndex = 3
                        End If
                    End If
                End If
            End If
        End If
    End If
Next

End Sub


J'ai également modifié le format de certaines dates qui étaient en mm-aa au lieu de jj/mm/aaaa. Et après test, ça fonctionne.
0
audreyBD > ptidavid Messages postés 1273 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 16 février 2010
8 déc. 2009 à 11:09
Je sors tout juste d'entretien - je fais le test et je t'en parle !
En tout cas merci boukou boukou !!!!!

Audrey
0
ptidavid Messages postés 1273 Date d'inscription jeudi 3 août 2006 Statut Membre Dernière intervention 16 février 2010 104
8 déc. 2009 à 13:17
Je viens de faire le test sous Excel 2007, en prenant soin d'enregistrer le fichier .xlsx comme "classeur Excel (prenant en charge les macros)", et ça marche encore mieux que sur Excel XP, puisque quelque soit le format de date, la macro fonctionne :p La preuve en images :
https://public.ch.files.1drv.com/y4p81zouHh60fOj-peZH1kdCas7yjmIqLgD9PHwgKerfFcX1WyZWEDAqfpNa_NIFFbW3jjc1k3HdUw8l_JF7ZRY-rWs4tBs0XAXiX1NbNl1MtxMhD3a9gSGRW3o4lAz6sWl3Mg9vKgU3ima3HcdUQHX48brvrZ1kyvQReBCd6ZrQAyjy2S9frfjAiqh6-5MJLjU/couleur%20date.png?rdrts=255638190

0