Affichage de la date

Bonjour à tous,
Je suis sous Excel 2010 et voici ce que j'obtiens en affichage via "msgbox"

affichage date vba

Voici le code:

MsgBox "Instruction (Date) affiche " & Date & Chr(10) & "Instruction Month(Date) affiche " & Month(Date) & Chr(10) & "Instruction Format(Month(Date), mmm ) affiche " & Format(Month(Date), "mmmm")

Une explication ?

Merci pour vos éclaircissements

Bonjour,

La valeur testée correspond sans doute au quantième de l'année à un numéro près.

Sub Test()

'MsgBox "Instruction (Date) affiche " & Date _
'& Chr(10) & "Instruction Month(Date) affiche " & Month(Date) _
'& Chr(10) & "Instruction Format(Month(Date), mmm ) affiche " & Format(Month(Date), "mmmm")
Debug.Print Format(17, "mmmm")           ' Janvier : date du jour
Debug.Print Format(Month(Date), "mmmm")  ' Janvier : 11 est considéré comme un jour du mois de janvier
Debug.Print Format(33, "mmmm")  ' Février
Debug.Print Format(61, "mmmm")  ' Mars
Debug.Print Format(92, "mmmm")  ' Avril
Debug.Print Format(122, "mmmm") ' Mai
Debug.Print Format(153, "mmmm") ' Juin

End Sub

Bonjour,

Format(Month(Date), "mmmm")

n'est pas bon. Du moins ne te retournera pas le mois en cours.

Si tu décomposes tu as plusieurs fonctions comme tu le comprends bien au vue de tes tests.
Date --> pour la date du jour
Month --> pour le mois d'une date. Le mois et uniquement le mois. Pas une date complète. Dans ton cas puisque la date testé est en novembre la valeur retournée est 11 et uniquement 11.
Format --> pour formater une valeur avec un format d'affichage précis

Si tu fais étape par étape :
Format(Month(17/11/2025), "mmmm")
Format(11, "mmmm")

Tu lui demandes de traduire 11 en date pour en extraire le mois. 11 n'étant pas une date il considère que c'est le 11ème jour de l'année et le traduit donc par 11/01/1900. C'est à dire 11 jours après la date minimum à partir de laquelle Excel reconnait un format date et sait travailler avec.

En fait Excel gère les dates comme un entier. Il considère un entier donné comme le nombre de jours à ajouter au 01/01/1900. Il ne sait pas travailler avec des dates antérieures.

donc 1 pour lui est le 01/01/1900

2 le 02/01/1900

3 le 03/01/1900

etc

Bonsoir Alex et Eric,

Merci pour vos réponses qui me montrent qu'extraire les dates sous Excel VBA n'est vraiment pas une mince affaire !!!
Je vais tenter une nouvelle approche pour mon projet du coup, car je ne vois pas comment faire pour obtenir un résultat fiable en partant d'une cellule au format jj/mm/aaaa.

Bonsoir,

Format(Month(Date), "mmmm") affiche Month(Date) avec le format "mmmm". Or Month(Date) est un entier compris entre 1 et 11, ça ne représente pas une date.

On écrira donc Format(Date, "mmmm") avec Date qui est bien une date (celle du jour courant) et pour cette date, on affiche le mois complet en indiquant "mmmm"

Bonsoir mafraise,

Merci beaucoup pour vos explications simples.
Pourtant, j'avais la réponse sous les yeux dans les 2 réponses précédentes, mais je n'ai pas su interpréter. Grâce à vous, oui.

Très content

Bonne soirée et encore merci

Pour compléter. Tu peux aussi jouer avec le format de cellule (clic droit sur la cellule (ou une sélection de cellules), puis menu "format de cellule").

Tu pourras choisir l'affichage que tu veux directement pour ta date (format date pas une date format texte) sans faire de formule. Si les formats proposés ne te conviennent pas tu peux aller dans "format personnalisé" et préciser ce que tu veux.

Rechercher des sujets similaires à "affichage date"