Note: The other languages of the website are Google-translated. Back to English

Comment convertir rapidement la date en mots dans Excel?

En général, nous convertissons généralement la date en d'autres formats de date ou chiffres dans Excel, mais avez-vous déjà rencontré un problème concernant la conversion de la date en mots anglais comme illustré ci-dessous? En fait, il n'y a pas de fonction intégrée qui peut le gérer mais un code VBA.
doc date aux mots 1

Convertir la date en mot avec la fonction définie


Convertir la date en mot avec la fonction définie

Voici un code macro qui peut vous rendre service lors de la conversion des dates en mots.

1. Activez la feuille que vous utilisez et appuyez sur Alt + F11 clés pour ouvrir Microsoft Visual Basic pour applications fenêtre.

2. Cliquez insérer > Module et collez le code ci-dessous dans le script.

VBA: convertir la date en mot

Function DateToWords(ByVal xRgVal As Date) As String
'UpdatebyExtendoffice20170926
    Dim xYear As String
    Dim Hundreds As String
    Dim Decades As String
    Dim xTensArr As Variant
    Dim xOrdArr As Variant
    Dim xCardArr As Variant
    xOrdArr = Array("First", "Second", "Third", _
                   "Fourth", "Fifth", "Sixth", _
                   "Seventh", "Eighth", "Nineth", _
                   "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-nineth", "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")
    xYear = CStr(Year(xRgVal))
    Decades = Mid$(xYear, 3)
    If CInt(Decades) < 20 Then
        Decades = xCardArr(CInt(Decades))
    Else
        Decades = xTensArr(CInt(Left$(Decades, 1)) - 2) & "-" & _
                xCardArr(CInt(Right$(Decades, 1)))
    End If
        Hundreds = Mid$(xYear, 2, 1)
    If CInt(Hundreds) Then
        Hundreds = xCardArr(CInt(Hundreds)) & " Hundred "
    Else
        Hundreds = ""
    End If
    DateToWords = xOrdArr(Day(xRgVal) - 1) & _
                  Format$(xRgVal, " mmmm ") & _
                  xCardArr(CInt(Left$(xYear, 1))) & _
                  " Thousand " & Hundreds & Decades
End Function

doc date aux mots 2

3. Enregistrez le code et revenez à la feuille, sélectionnez une cellule dans laquelle vous allez sortir le résultat, tapez cette formule = DateToWords (A1) (A1 est la date que vous utilisez), appuyez sur Entrer et faites glisser la poignée de remplissage automatique sur les cellules dont vous avez besoin. Voir la capture d'écran:
doc date aux mots 3


Nombres en mots

doc épeler le numéro 1

Articles relatifs:


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2021 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Fonctionnalités complètes Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition 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é de 50% et réduit des centaines de clics de souris chaque jour!
bas de cabine
Commentaires (23)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
La formule datetowords ne fonctionne pas dans tous les fichiers exall
Ce commentaire a été minimisé par le modérateur sur le site
Pardon, pourriez-vous me dire quel type de fichier Excel ne fonctionne pas ?
Ce commentaire a été minimisé par le modérateur sur le site
Cela met un trait d'union après des décennies de plus de 20 qui se terminent par zéro.
Ce commentaire a été minimisé par le modérateur sur le site
Correction du trait d'union après le 20, 30, 40, etc.

Ajoutez ceci après "If CInt(Decades) < 20 Then
Décades = xCardArr(CInt(Decades))"

ElseIf CInt(Decades) Like "*0" Alors
Décades = xTensArr(CInt(Left$(Decades, 1)) - 2)
Ce commentaire a été minimisé par le modérateur sur le site
Eh bien, son travail, sympa, mais certains problèmes de format sont ici, comme 1975 (Dix-neuf mille soixante-quinze) pas (Mille neuf cent soixante-quinze), Mais dans le cas 20+, le format est correct comme 2011 (Deux mille onze ), et aussi le deuxième problème est (singulier/pluriel), ici (Mille, Deux Mille, Cent, Neuf Cent), Veuillez les résoudre, merci
Ce commentaire a été minimisé par le modérateur sur le site
Excellent...
Ce commentaire a été minimisé par le modérateur sur le site
son travail est bon mais je veux pour les années 90 "Nineteen Hundred" et non "Onemille neuf cents"... merci !
Ce commentaire a été minimisé par le modérateur sur le site
Désolé, zia khan, je ne comprends pas ce que tu veux dire par convertir 90 en mille neuf cent. Le VBA ne peut convertir que la date en mots, l'utilitaire Split Out Number convertit les nombres en mots de la devise anglaise
Ce commentaire a été minimisé par le modérateur sur le site
"Nineteen Hundred" est de l'anglais parlé, c'est faux en fait.
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, pouvons-nous également le faire dans word docx?
Ce commentaire a été minimisé par le modérateur sur le site
date à mot en langue gujarati disponible ? s'il vous plait répondez moi. 9427909038
Ce commentaire a été minimisé par le modérateur sur le site
Je pense que cela ne fonctionne pas pour d'autres langues que l'anglais.
Ce commentaire a été minimisé par le modérateur sur le site
comment utiliser ce code en vb6 pour une zone de texte
Ce commentaire a été minimisé par le modérateur sur le site
Monsieur / Madame

Ça m'est très utile.

Vraiment incroyable et a aidé à résoudre le problème en une minute.

Merci d'avoir téléchargé ce document. Très beau
Ce commentaire a été minimisé par le modérateur sur le site
merci de m'aider. très utile pour convertir la date de naissance en word
Ce commentaire a été minimisé par le modérateur sur le site
Je voudrais ajouter du texte à la sortie, par exemple, 1958 est converti en mille neuf cent cinquante huit et je voudrais qu'il dise mille neuf cent et Cinquante huit. Quelqu'un peut-il me donner un exemple de comment je peux faire cela s'il vous plaît?
Ce commentaire a été minimisé par le modérateur sur le site
C'est donner le #NOM ? Erreur
Ce commentaire a été minimisé par le modérateur sur le site
آپ کا بہت شکریہ
Ce commentaire a été minimisé par le modérateur sur le site
07/08/1998 SEPTEMBRE AOÛT MILLE NEUF CENT QUATRE-VINGT DIX-HUIT
J'ai besoin de dob en mots au format supérieur mais j'utilise ce micros dans Excel j'ai ça
07/08/1998 SEPTEMBRE AOÛT MILLE NEUF CENT QUATRE-VINGT-DIX-HUIT ce qui n'est pas utile
Ce commentaire a été minimisé par le modérateur sur le site
Salut, MAX, j'ai modifié le VBA, s'il vous plaît essayez et faites-moi savoir si cela fonctionne. Merci.
Function DateToWords(ByVal xRgVal As Date) As String
'UpdatebyExtendoffice20170926
    Dim xYear As String
    Dim Decades As String
    Dim years As String
    Dim xTensArr As Variant
    Dim xyearArr As Variant
    Dim xOrdArr As Variant
    Dim xCardArr As Variant
    xOrdArr = Array("First", "Second", "Third", _
                   "Fourth", "Fifth", "Sixth", _
                   "Seventh", "Eighth", "Nineth", _
                   "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-nineth", "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")
    xYear = CStr(Year(xRgVal))
    
    
      xyearArr = Array("", "One", "Two", "Three", "Four", _
                   "Five", "Six", "Seven", "Eight", "Nine", _
                   "Ten", "Eleven", "Twelve", "Thirteen", _
                   "Fourteen", "Fifteen", "Sixteen", _
                   "Seventeen", "Eighteen", "Nineteen", "Twenty", "Thirty", "Forty", "Fifty", _
               "Sixty", "Seventy", "Eighty", "Ninety")

    years = xyearArr(CInt(Year(xRgVal) / 100)) & " Hundred"
    
    Decades = Mid$(xYear, 3)
    If CInt(Decades) < 20 Then
        Decades = xCardArr(CInt(Decades))
    Else
        Decades = xTensArr(CInt(Left$(Decades, 1)) - 2) & "-" & _
                xCardArr(CInt(Right$(Decades, 1)))
    End If

    DateToWords = UCase(xOrdArr(Day(xRgVal) - 1) & _
                  Format$(xRgVal, " mmmm ") & _
                  years & " " & Decades)
End Function

Ce commentaire a été minimisé par le modérateur sur le site
07/08/1998 SEPTIÈME AOÛT VINGT CENT QUATRE-VINGT-DIX-HUIT
Dans ce vba avoir une erreur
convert it1998 mais il affiche VINGT CENT QUATRE-VINGT-DIX-HUIT
Ce commentaire a été minimisé par le modérateur sur le site
Salut, essaie ce vba :
Function DateToWords(ByVal xRgVal As Date) As String
'UpdatebyExtendoffice20170926
    Dim xYear As String
    Dim Decades As String
    Dim years As String
    Dim xTensArr As Variant
    Dim xyearArr As Variant
    Dim xOrdArr As Variant
    Dim xCardArr As Variant
    xOrdArr = Array("First", "Second", "Third", _
                   "Fourth", "Fifth", "Sixth", _
                   "Seventh", "Eighth", "Nineth", _
                   "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-nineth", "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")
    xYear = CStr(Year(xRgVal))
    
    
      xyearArr = Array("", "One", "Two", "Three", "Four", _
                   "Five", "Six", "Seven", "Eight", "Nine", _
                   "Ten", "Eleven", "Twelve", "Thirteen", _
                   "Fourteen", "Fifteen", "Sixteen", _
                   "Seventeen", "Eighteen", "Nineteen", "Twenty", "Thirty", "Forty", "Fifty", _
               "Sixty", "Seventy", "Eighty", "Ninety")

    years = xyearArr(Fix(Year(xRgVal) / 100)) & " Hundred"
    
    Decades = Mid$(xYear, 3)
    If CInt(Decades) < 20 Then
        Decades = xCardArr(CInt(Decades))
    Else
        Decades = xTensArr(CInt(Left$(Decades, 1)) - 2) & "-" & _
                xCardArr(CInt(Right$(Decades, 1)))
    End If

    DateToWords = UCase(xOrdArr(Day(xRgVal) - 1) & _
                  Format$(xRgVal, " mmmm ") & _
                  years & " " & Decades)
End Function

Ce commentaire a été minimisé par le modérateur sur le site
07/08/1998 SEPTIÈME AOÛT VINGT CENT QUATRE-VINGT-DIX-HUIT
Dans ce vba avoir une erreur
convert it1998 mais il affiche VINGT CENT QUATRE-VINGT-DIX-HUIT
Il n'y a pas encore de commentaires postés ici
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés

Nous suivre

Copyright © 2009 - www.extendoffice.com. | Tous les droits sont réservés. Alimenté par ExtendOffice. | | Plan du site
Microsoft et le logo Office sont des marques commerciales ou des marques déposées de Microsoft Corporation aux États-Unis et / ou dans d'autres pays.
Protégé par Sectigo SSL