Format Date Comparaison

Résolu
Bonjour,

je voulais savoir s'il était possible de comparer deux dates du type "mmmm yyyy".
J'ai fais une macro qui consiste à écrire "prévision" quand la date est supérieure à la date d'aujourd'hui et sinon écrire "Réel".
voici mon bout de code

Sub ColDate()

    'Compte le nombre de mois entre la date de début et la date de fin
   Sheets("Inputs012").Activate
   Dat1 = Range("D2")
   Dat2 = Range("E2")
   Nbre_mois = (Year(Dat2) - Year(Dat1)) * 12 + Month(Dat2) - Month(Dat1)
   If Day(Dat2) - Day(Dat1) <> 0 Then
    Nbre_mois = Nbre_mois + 1
   End If
   Annee = Year(Range("D2").Value)
   Sheets("Feuil1").Activate
   Range("A1") = Format(Date, "mmmm yyyy")

      For c = 2 To Nbre_mois + 1
         Cells(2, c).Value = DateSerial(Annee, c, 1)
         Cells(2, c).Value = Format(Cells(2, c).Value, "mmmm yyyy")
      Next 
      
    ' Précise si c'est des prévisions ou du réel
    Sheets("Feuil1").Activate
      For c = 2 To Nbre_mois + 1
            If Cells(2, c).Value > Cells(1, 1).Value Then
                Cells(1, c).Value = "Prévision"
            Else: Cells(1, c).Value = "Réel"
            End If
      Next c
        
End Sub


Quand je fais tourner cette macro, elle m'affiche réel que pour le mois d'août. Par exemple j'ai février 2013, elle m'affiche prévision mais pour août 2013 elle m'affiche Réel! Quelq'un à une idée de comment je dois procéder?
Merci d'avance, bonne journée!

2 réponses

  1. Bonjour,

    Fichier excel je suppose.

    Plutôt qu'une macro une formule type =SI() serait plus facile à mettre en oeuvre.
    0
    1. Bonjour,

      en faite dans "A1" je mets la date d'aujourd'hui. Ensuite j'ai fait une macro qui va prendre dans un autre fichier une date de début et une date de fin et par la suite, cette macro va afficher tous les mois de la date du début jusuq'à la date de fin sur ma ligne 2. Par la suite, donc, j'aimerai comparer toutes ces dates avec la date d'aujourd'hui. Et donc écrire soit prévision ou Réel. Je voulais faire par macro parce que mes dates de début et de fin peuvent changer donc du coup le nombre de dates sur ma ligne 2 n'est pas fixe aussi. Je sais pas si claire ou pas.
      0
    2. Si j'ai bien compris
      une fois la macro lancée, les dates de début et de fin sont copiées sur la ligne 2.
      Mais vous voulez écrire Prévision ou Réel où ?
      0
    3. juste au dessus, sur la ligne 1, à côté de la date d'aujourd'hui.
      0
    4. Il suffit donc de mettre la formule type =SI() sur la ligne 1 à côté de la date d'aujourd'hui
      0
    5. Mais ca va s'appliquer sur toutes mes colonnes de ma ligne 1?
      0
  2. Modérateur
    Bonjour,

    Pour comparer des dates, il faut...comparer des dates.
    Là, ta macro compare "alphabétiquement" si, par exemple mai 2013 est supérieur à aout 2014. La réponse est oui, m est supérieur à a...

    Donc, remplace ta ligne :
    If Cells(2, c).Value > Cells(1, 1).Value Then

    par :
    If CDate("01 " & Cells(2, c).Value) > CDate("01 " & Cells(1, 1).Value) Then

    0
    1. Bonjour,

      Super c'est exactement ça que je voulais et ça marche très bien. Merci beaucoup!
      0
    2. Modérateur
      @Mathildede rien.
      A+
      0