Format Date Comparaison [Résolu/Fermé]

Signaler
-
Messages postés
12247
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
10 février 2021
-
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

Messages postés
813
Date d'inscription
mardi 21 juillet 2015
Statut
Membre
Dernière intervention
20 mars 2018
252
Bonjour,

Fichier excel je suppose.

Plutôt qu'une macro une formule type =SI() serait plus facile à mettre en oeuvre.
juste au dessus, sur la ligne 1, à côté de la date d'aujourd'hui.
Messages postés
813
Date d'inscription
mardi 21 juillet 2015
Statut
Membre
Dernière intervention
20 mars 2018
252
Il suffit donc de mettre la formule type =SI() sur la ligne 1 à côté de la date d'aujourd'hui
Mais ca va s'appliquer sur toutes mes colonnes de ma ligne 1?
Messages postés
813
Date d'inscription
mardi 21 juillet 2015
Statut
Membre
Dernière intervention
20 mars 2018
252
Il faut essayer pour voir, mais dans votre macro ci dessus vous utilisez cette formule
D'accord! Je vais tester alors. Merci d'avoir répondu rapidement et pour l'aide.
Messages postés
12247
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
10 février 2021
2 575
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

Bonjour,

Super c'est exactement ça que je voulais et ça marche très bien. Merci beaucoup!
Messages postés
12247
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
10 février 2021
2 575 > Mathilde
de rien.
A+