Comment convertir rapidement une date en mots dans Excel ?
En général, nous convertissons habituellement une date en d'autres formats de date ou en chiffres dans Excel, mais avez-vous déjà rencontré un problème lié à la conversion d'une date en mots anglais comme le montre la capture d'écran ci-dessous ? En réalité, il n'y a aucune fonction intégrée qui peut gérer cela, sauf avec un code VBA.
Convertir une date en mots avec une fonction définie
Convertir une date en mots avec une fonction définie
Voici un code macro qui peut vous aider à convertir des dates en mots.
1. Activez la feuille que vous utilisez et appuyez sur les touches Alt + F11 pour ouvrir la fenêtre Microsoft Visual Basic pour Applications.
2. Cliquez sur Insérer > Module et collez le code ci-dessous dans le script.
VBA : Convertir une date en mots
Function DateToWords(ByVal xRgVal As Date) As String
' Update by Extendoffice on 20240926
Dim xYear As String
Dim Hundreds As String
Dim Decades As String
Dim xTensArr As Variant
Dim xOrdArr As Variant
Dim xCardArr As Variant
' Initialize arrays
xOrdArr = Array("First", "Second", "Third", "Fourth", "Fifth", "Sixth", _
"Seventh", "Eighth", "Ninth", "Tenth", "Eleventh", "Twelfth", _
"Thirteenth", "Fourteenth", "Fifteenth", "Sixteenth", _
"Seventeenth", "Eighteenth", "Nineteenth", "Twentieth", _
"Twenty-first", "Twenty-second", "Twenty-third", "Twenty-fourth", _
"Twenty-fifth", "Twenty-sixth", "Twenty-seventh", "Twenty-eighth", _
"Twenty-ninth", "Thirtieth", "Thirty-first")
xCardArr = Array("", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", _
"Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", _
"Seventeen", "Eighteen", "Nineteen")
xTensArr = Array("Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety")
' Extract year
xYear = CStr(Year(xRgVal))
Decades = Mid$(xYear, 3)
' Handle decades
If CInt(Decades) < 20 Then
Decades = xCardArr(CInt(Decades))
Else
Decades = xTensArr(CInt(Left$(Decades, 1)) - 2) & "-" & xCardArr(CInt(Right$(Decades, 1)))
End If
' Handle hundreds
Hundreds = Mid$(xYear, 2, 1)
If CInt(Hundreds) Then
Hundreds = xCardArr(CInt(Hundreds)) & " Hundred "
Else
Hundreds = ""
End If
' Construct English representation of the date
DateToWords = xOrdArr(Day(xRgVal) - 1) & " " & Format$(xRgVal, "mmmm") & " " & _
xCardArr(CInt(Left$(xYear, 1))) & " Thousand " & Hundreds & Decades
End Function
3. Enregistrez le code et revenez à la feuille, sélectionnez une cellule où vous afficherez le résultat, puis tapez cette formule =DateToWords(A2) (A2 est la date que vous utilisez), appuyez sur Entrée et faites glisser la poignée de recopie automatique sur les cellules dont vous avez besoin. Voir la capture d'écran :
Débloquez la commodité de convertir instantanément des nombres en mots dans Excel avec la fonctionnalité Nombres en Mots de Kutools pour Excel, vous faisant gagner du temps et des efforts pour créer facilement des documents au look professionnel !
Accéder au téléchargement gratuit dès maintenant
Articles connexes :
- Comment convertir rapidement le format de date entre européen et américain dans Excel ?
- Comment convertir JJ.MM.AAAA en format de date (MM/JJ/AAAA) dans Excel ?
- Comment convertir entre une date et un horodatage Unix dans Excel ?
Meilleurs outils de productivité pour Office
Boostez vos compétences Excel avec Kutools pour Excel, et découvrez une efficacité sans précédent. Kutools pour Excel propose plus de300 fonctionnalités avancées pour augmenter la productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...
Office Tab apporte une interface à onglets à Office, et facilite grandement votre travail
- Activez la modification et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
- Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
- Augmente votre productivité de50 %, et réduit des centaines de clics de souris pour vous chaque jour !