Mise en forme automatique DATE

audreyBD -  
ptidavid Messages postés 1322 Statut Membre -
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
Configuration: Windows XP Internet Explorer 6.0

7 réponses

  1. ptidavid Messages postés 1322 Statut Membre 108
     
    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
    1. audreyBD
       
      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
      1. ptidavid Messages postés 1322 Statut Membre 108 > audreyBD
         
        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
      2. ptidavid Messages postés 1322 Statut Membre 108 > ptidavid Messages postés 1322 Statut Membre
         
        Pas de questions à propos de mon post? De mon côté, j'ai fini la macro, je suis en train de la tester.
        0
      3. audreyBD > ptidavid Messages postés 1322 Statut Membre
         
        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
      4. ptidavid Messages postés 1322 Statut Membre 108 > audreyBD
         
        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
  2. Franck2744 Messages postés 233 Statut Membre 124
     
    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
    1. ptidavid Messages postés 1322 Statut Membre 108
       
      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
  3. Franck2744 Messages postés 233 Statut Membre 124
     
    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
    1. ptidavid Messages postés 1322 Statut Membre 108
       
      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
  4. Franck2744 Messages postés 233 Statut Membre 124
     
    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
    1. ptidavid Messages postés 1322 Statut Membre 108
       
      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
      1. audreyBD > ptidavid Messages postés 1322 Statut Membre
         
        Sorry de ne revenir que maintenant...
        Je teste tout ça et je vous tiens au courant !
        En tout cas merci !!!!!!!!!

        Audrey
        0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. audreyBD
     
    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
    1. ptidavid Messages postés 1322 Statut Membre 108
       
      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
    2. ptidavid Messages postés 1322 Statut Membre 108 > ptidavid Messages postés 1322 Statut Membre
       
      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
    3. audreyBD > ptidavid Messages postés 1322 Statut Membre
       
      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
    4. ptidavid Messages postés 1322 Statut Membre 108 > audreyBD
       
      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
    5. audreyBD > ptidavid Messages postés 1322 Statut Membre
       
      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
  7. Franck2744 Messages postés 233 Statut Membre 124
     
    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
    1. audrey-chou Messages postés 2 Statut Membre
       
      Merci Franck !
      J'ai gardé ta formule (pour une autre partie de ma base de données ! :D

      Bonne soirée
      0
    2. ptidavid Messages postés 1322 Statut Membre 108
       
      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
    3. ptidavid Messages postés 1322 Statut Membre 108 > ptidavid Messages postés 1322 Statut Membre
       
      Je t'ai envoyé un message privé avec mon adresse. A toi de jouer ;-)
      0
    4. ptidavid Messages postés 1322 Statut Membre 108 > ptidavid Messages postés 1322 Statut Membre
       
      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
    5. audreyBD > ptidavid Messages postés 1322 Statut Membre
       
      Je sors tout juste d'entretien - je fais le test et je t'en parle !
      En tout cas merci boukou boukou !!!!!

      Audrey
      0
  8. ptidavid Messages postés 1322 Statut Membre 108
     
    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