Date

Résolu/Fermé
Mathilde - Modifié par pijaku le 20/08/2015 à 15:03
 Mathilde - 21 août 2015 à 09:19
Bonjour,

je rencontre un problèmes avec les dates. J'ai une date de début (par exemple 01/07/2011) et une date de fin ( 30/06/2016). Je souhaiterai afficher dans mes cellules tous les mois depuis le début jusqu'à la fin. Cela me donnerai:
01/07/2011|01/08/2011|01/09/2011|..............|30/06/2016
PS: la date de début et la date de fin serait rentrées par l'utilisateur dans deux cellules sur une autre feuille :
Date de début : 01/07/2011 en A1
Date de fin : 30/06/2016 en A2
Voici mon code :

Sub ColDate()
   Sheets("Feuil1").Activate
   Dat1 = Range("A1")
   Dat2 = Range("A2")
   Nbre_mois = (Year(Dat2) - Year(Dat1)) * 12 + Month(Dat2) - Month(Dat1)
   Annee = (Year(Range("A1").Value))
   Sheets("Paramètre").Activate
      For C = 2 To Nbre_mois + 1
         Cells(1, C).Value = DateSerial(Annee, C, 0)
      Next C
     
End Sub


Le problème c'est que lors de l'affichage, ça va me marquer :
31/01/2011|29/02/2011.....
Ca commence au 31/01/2011 au lieu du 31/07/2011
Quelqu'un à une idée pour que cela affiche à partir de ma date de début et non pas à partir de la date du début de l'année?

Merci par avance pour votre aide.

2 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 20/08/2015 à 13:54
Bonjour,

Peut-^tre sans macro:
en feuil1
en A1
=Feuil2!A1
en B1:
=SI(OU(A1="";MOIS.DECALER(A1;1)>Feuil2!$A2);"";MOIS.DECALER(A1;1))
tirer vers la droite
Michel
0
Bonjour,

Je suis obligée de faire sous macro. Je fais un reporting financier tout automatisé et les dates peuvent changer et c'est pour ensuite créer un tableau et un graphique avec ces dates... donc c'est plus simple pour mois d'automatiser ça..
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
Modifié par pijaku le 20/08/2015 à 15:03
Bonjour
ceci
    m = Month(Dat1)
    For c = 2 To Nbre_mois + 1
        Cells(1, c).Value = DateSerial(Annee, m + 1, 1 - 1)
        m = m + 1
    Next c

Cdlt
0
Merci beaucoup, c'est exactement ça que je voulais.
Bonne journée
0