Instinctivement, si on nous demandait d’insérer une suite de dates qui se suivent dans des cellules d’excel, nous pourrions penser à utiliser une boucle telle que For … To … Next

Si nous maîtrisons les fonctionnalités d’Excel, nous utiliserons, la méthode DataSeries de l’objet Range.

Dans le code ci-dessous, nous insérons en colonne à partir de la cellule A2 de la feuille nommée Feuil1, la date du jour et les 30 jours qui suivent.

Code de la procédure

Sub InsertSerialDate()
 With ThisWorkbook.Worksheets("Feuil1").Range("A2")
 .Value = Date ' Date de début. Dans cet exemple, il s'agit de la date du jour.
 .DataSeries Rowcol:=xlColumns, Type:=xlChronological, Date:=xlDay, Stop:=Date + 30
 End With
End Sub

Liste des arguments

Ceux-ci sont facultatifs et ont une valeur par défaut.

RowCol : Argument qui spécifie si la série de données sera entrée en ligne ou en colonne et peut avoir donc pour valeur la constante xlRows ou xlColumns
Type : Type de la série de données. Pour les dates c’est la constante xlChronological
Date : Si l’argument Type a pour valeur la constante xlChronological, l’argument Date indique l’unité de série. Elle peut avoir comme valeur l’une des constantes suivante xlDay (Jour), xlWeekday (Jours ouvrés), xlMonth (Mois), xlYear (année)
Step : Valeur du pas de la série (1 par défaut)
Stop : Dernière date (dans notre exemple la date du jour + 30)

Manuellement

L’enregistreur de macros permettra de visualiser les arguments à passer à la méthode DataSerie pour d’autres cas.

Pour effectuer cette opération manuellement, il suffit d’entrer une date (par exemple en cellule A2), ensuite cliquer sur Série… de la commande principale Remplissage du groupe Edition de l’onglet [Accueil]

La boîte de dialogue Série de données s’affiche.

Dans la boîte de dialogue ci-dessus et après avoir entré la date de départ (ici la cellule A2).
Attention que cette cellule doit être active (sélectionnée)

  • Série en : Choisi le sens de la série (lignes ou colonnes)
  • Type : Chronologique (Automatique si la cellule active contient une date)
  • Unité de temps : de la date de début (définie par la cellule active, jusqu’à la date de fin (définie par la dernière valeur) et ce avec une série  de x jour défini par Valeur du pas.
    Jour :  tous les jours
    Jour ouvré : tous les jours sauf les samedis et dimanches
    Mois : série par mois (si la date de départ est le 1/4/2018, dernière valeur le 1/6/2018 et valeur du pas 1, nous aurons  01/04/2018, 01/05/2018 et 01/06/2018.
    Année : série par années
  • Valeur du pas : défini le pas de la série. Si valeur du pas est égal à 7, nous aurons pour notre exemple 01/04/2018 (date de départ), 08/04/2018, 15/04/2018, 22/04/2018, 29/04/2018
  • Dernière valeur : Date de fin. Cette date est la limite maximale de la série