Salut Claude et tout le monde,
C'est normal ce qui se passe car la date de ta feuille, sous l'apparence 2 octobre 04, est en réalité un nombre (38225 pour cette date) qui est le format de base pour la date en VBA et utilisée dans les protocoles d'échanges entre programmes) (DDE). Quand outlook reçoit ce nombre qu'il sait être une date, il l'affiche à l'écran dans son format à lui qui est jj/mm/aa (ou 02/10/04) que l'on ne peut pas modifier à ma connaissance.
Le seul moyen d'envoyer sous le format demandé est d'écrire cette date SOUS FORME DE TEXTE à l'endroit désiré de ta feuille que tu veux envoyé par Email.
Ainsi Outlook écrirat le texte de la date transformée, et non plus le nombre date à sa façon.
Voici le code avec l'exemple joint, de la macro à écrire et à appeler pour cette conversion. La cellule A1 contient la date du jour (ou une autre mais dans un format date RECONNU) et A3 renvoie le texte et non plus la date
A +
ChS
Dim NomMois(11) As String 'un tableau commence par la valeur 0
Sub Test()
NomMois(0) = "Janvier": NomMois(1) = "Février": NomMois(2) = "Mars": NomMois(3) = "Avril":
NomMois(4) = "Mai": NomMois(5) = "Juin": NomMois(6) = "Juillet": NomMois(7) = "Août":
NomMois(8) = "Septembre": NomMois(9) = "Octobre": NomMois(10) = "Novembre": NomMois(11) = "Décembre":
DateAConvertir = Cells(1, 1).Value
'Extrait le jour et le convertit en texte (String)
Jour = Str(Day(DateAConvertir))
'Extrait le NomMois
NoMois = Month(DateAConvertir)
'NoMois est un nombre qui servira d'index au NomMoios
'Extrait l'année et la convertit en texte (String)
Année = Str(Year(DateAConvertir))
DateEnTexte = Jour & (" ") & NomMois(NoMois - 1) & (" ") & Année
'NoMois - 1 parceque le tableau commence à 0
MsgBox (DateEnTexte)
Cells(3, 1).Value = DateEnTexte
End Sub