Date en anglais

Bonjour,

Je dois créer une macro dont l'une des fonctions est de mettre à jour une cellule dans le format suivant "August 2021". Si j'utilise la fonction Date seule, elle se base sur la langue d'excel locale, or je veux éviter ça sachant que le rapport doit être lisible pour tous (donc en anglais).

Après quelques essais j'ai pu produire cette fonction qui s'approche à peu près de ce que je veux renvoyer :

CurrentMonthYear = WorksheetFunction.Text(Date, "[$-409]yyyy mmmm")

Sauf que cela renvoie "2021 August". Si j'essaie d'inverser les yyyy avec les mmmm je perds la traduction et cela me renvoie "août-21". Je ne comprends pas trop.

Devrais-je passer par une autre méthode ou est-ce que je m'y prends mal ?

Si vous pourriez m'aider je vous remercie sincèrement.

Bonne journée

bonjour

je suppose que si tu mets un msgbox CurrentMonthYear, le contenu est correct. lorsque tu mets cette valeur dans une cellule, excel la reconnait comme étant une date et utilise son format standard. si tu veux éviter fait précéder la date d'une apostrophe au moment de la mettre dans la cellule ou mets la cellule au format souhaité.

range("B1")="'" & CurrentMonthYear

ou format personnalisé pour la cellule

"[$-en-GB]mmmm aaaa"

Bonjour à tous,

Est-ce que je peux me permettre de conseiller la lecture de ce post =>

https://forum.excel-pratique.com/astuces/vba-le-format-date-dans-excel-a-l-international-159848

Pierre

Bonjour @h2so4

Je comprends. J'ai opté pour le format cellule sachant que c'est celui que j'utilise le plus souvent. Toutefois quand j'entre la formule au format personnalisé cellule, j'obtiens "August Tuesday" c'est vraiment bizarre.

Bonjour @pierrep56

Je lis ça après ma pause déjeuner. Merci. ;)

bonjour,

pour illustrer mon propos,

Sub aargh()
    currentmonthyear = WorksheetFunction.Text(Date, "[$-en-GB]mmmm yyyy")
    MsgBox currentmonthyear 'affiche la date au format demandé
    [A1].Delete
    [A1] = currentmonthyear 'convertit en date standard au moment de la copie de currentmonthyear dans la cellule A1
    [A3]= "'" & currentmonthyear ' ne convertit pas en date standard, cela reste du texte
    [A2].NumberFormat = "[$-en-GB]mmmm aaaa" 'format date personnalisé pour A2
    [A2] = [A1] 'copie A1 en A2
End Sub

donc si c'est pour mettre la date dans une cellule avec un format personnalisé, rien ne sert de formater la date en vba. !

D'accord je comprends mieux la démarche maintenant !

J'ai réussi à adapter le code et ça fonctionne je tâcherai de me souvenir de la méthode. Merci à tous les deux en tout cas !

Rechercher des sujets similaires à "date anglais"