Format de date en VBA

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

David Gagnon

Last updated on décembre 23, 2021

Ce tutoriel montre comment formater des dates à l’aide de VBA.

Formatage des dates en VBA

Il existe deux méthodes pour formater des dates à l’aide de VBA.

  1. La propriété NumberFormat des objets Cells / Ranges – Pour formater les dates stockées dans les cellules
  2. La fonction VBA Format – Pour formater les dates en VBA (ex. variables)

Format de Nombre – Dates

Le format numérique par défaut d’une cellule dans Excel est Général. Vous pouvez afficher des valeurs sous forme de nombres, de texte, de dates, de pourcentages ou de devises en modifiant le format des nombres. La propriété NumberFormat peut être utilisée en VBA pour définir le format numérique des dates dans une cellule ou une plage.

Remarque : Pour voir les différents formats de date standard disponibles dans Excel, allez dans Accueil>Nombre et vous verrez des options telles que Date courte, Date longue et Heure.

Date Courte

L’option de formatage « date courte » affiche la date dans un format numérique court.

Le code suivant définit la propriété .NumberFormat de la cellule A1 comme étant de type date courte :

Range("A1").NumberFormat = "mm/dd/yyyy"

Date Longue

Le formatage numérique « date longue » affiche la date dans un format plus long et littéral. Le code suivant définit la propriété .NumberFormat de la cellule A1 comme étant de type date longue :

Range("A1").NumberFormat = "dddd, mmmm dd, yyyy"

Dates Personnalisées

Pour voir les codes de formats numériques personnalisés que vous pouvez utiliser en VBA pour formater une date, allez dans Accueil>Nombre et cliquez sur le bouton qui permet d’ouvrir la boîte de dialogue des options de formats. Sélectionnez l’onglet Nombre et choisissez Personnalisée.

Vous pouvez soit sélectionner les formats intégrés personnalisés pour votre date, soit créer vos propres formats de date définis par l’utilisateur. Le code suivant définit la propriété .NumberFormat de la cellule A1 à un format de date personnalisé intégré :

Range("A1").NumberFormat = "mmm-yy"

Le résultat est le suivant :

Le code suivant définira la propriété .NumberFormat de la cellule A1, à un format de date personnalisé défini par l’utilisateur :

Range("A1").NumberFormat = "dddd-dd-mmm-yy"

Le résultat est le suivant :

En examinant les exemples préétablis d’Excel, vous pouvez apprendre comment les « NumberFormats » doivent être saisis. Pour plus d’informations, lisez la documentation de Microsoft sur les formats de nombres pour les dates.

Fonction Format VBA

Tel que mentionné plus haut, la méthode NumberFormat est appropriée pour définir le format de nombre des dates stockées dans les cellules Excel. En VBA, vous pouvez utiliser la fonction Format pour convertir des dates en chaînes de caractères avec un certain format de date.

Vous pouvez utiliser la syntaxe suivante pour formater des dates :

Format(String_Representation, NumberFormatCode) où :

String_Representation – la chaîne de texte représentant la date.

NumberFormatCode – le code de format numérique spécifiant la manière dont la date doit être affichée.

Le code suivant montre comment formater la représentation d’une chaîne de texte d’une date au format longue date :

MsgBox Format("1/1/2010", "dddd, mmmm dd, yyyy")

Le résultat est le suivant :

Remarquez que la fonction Format utilise la même syntaxe de formatage de dates que la fonction NumberFormat ci-dessus.

Le code suivant montre comment formater une date représentée en chaîne de texte à une date au format « date moyenne » :

MsgBox Format("09 Octobre 2012", "Medium Date")

Le résultat est le suivant :

Le code suivant montre comment formater une date représentée en chaîne de texte à une date selon un format personnalisé défini par l’utilisateur :

MsgBox Format("09 October 2012", "dddd : dd/mm/yy")

Créateur de Formats Personnalisés en VBA

Notre module d’extension VBA : AutoMacro contient un générateur de formats personnalisés pour l’éditeur VBA. Il vous permet de définir des formats personnalisés et de prévisualiser immédiatement la sortie pour la valeur souhaitée :

vba custom number format

Le module complémentaire VBA contient de nombreux autres « générateurs de code », une vaste bibliothèque de codes et de nombreux autres outils de programmation. C’est le complément idéal pour tous ceux qui s’intéressent à la programmation VBA!

VBA Format Date dans Access

La fonction VBA Format Date fonctionne exactement de la même façon dans Access VBA que dans Excel VBA.

Function FiltreObtentionDate() As String
'Créer une chaine de texte pour récupérer l'information dans deux champs de 
'dates dans un formulaire Access
   Dim strChampDate As String
   If IsNull(Me.txtSDate) = False Then
      If IsNull(Me.txtEDate) = True Then Me.txtEDate = Me.txtSDate
      If strChampDate2 = "" Then
        FiltreObtentionDate = strChampDate & " Between #" & Format(Me.txtSDate, "mm/dd/yyyy") & "# And # " & Format(Me.txtEDate, "mm/dd/yyyy") & "#"
      End If
   End If
End Function
vba-free-addin

Module Complémentaire d'Exemples de Code VBA

Accédez facilement à tous les exemples disponibles sur le site.

Naviguez simplement dans le menu, cliquez, et le code sera inséré directement dans votre module. Module complémentaire .xlam.

(Aucune installation requise!)

Téléchargement gratuit

Retour aux exemples de code VBA