Accueil > > > CONVERSION D'UN CHIFFRE EN LETTRE
CONVERSION D'UN CHIFFRE EN LETTRE
Information sur la source
Description
Ce module permet de convertir un chiffre entier de 0 à 99999999999999. La méthode utilisée est la décomposition du chiffre par récursivité. nous divisons le chiffre par les éléments suivant : 10^9 (milliard) 10^6 (million) 10^3 (millier) 100 (centaine) 10 (dizaine) enfin il reste l'unité Ex : 200905 = (2* 100 *1000) + (9 *100) + 5 soit (deux * cent * mille) + (neuf * cent) + cinq
Source
' Conversion de chiffre en lettre de 0 à 1999 milliard 999 999 999
Module ChLettre
Dim chiffre() As String
Dim dizaine() As String
Dim chaine As String
Private Sub init()
ReDim dizaine(7) ' *** tableau contenant les noms des dizaines
dizaine(1) = "dix"
dizaine(2) = "vingt"
dizaine(3) = "trente"
dizaine(4) = "quarante"
dizaine(5) = "cinquante"
dizaine(6) = "soixante"
ReDim chiffre(20) ' *** tableau contenant le nom des 19 premiers nombres en lettres
chiffre(1) = "un"
chiffre(2) = "deux"
chiffre(3) = "trois"
chiffre(4) = "quatre"
chiffre(5) = "cinq"
chiffre(6) = "six"
chiffre(7) = "sept"
chiffre(8) = "huit"
chiffre(9) = "neuf"
chiffre(10) = "dix"
chiffre(11) = "onze"
chiffre(12) = "douze"
chiffre(13) = "treize"
chiffre(14) = "quatorze"
chiffre(15) = "quinze"
chiffre(16) = "seize"
chiffre(17) = "dix-sept"
chiffre(18) = "dix-huit"
chiffre(19) = "dix-neuf"
End Sub
Public Function NBLT(ByVal nb As Long) As String
Call init()
If nb = 0 Then
NBLT = "Zéro"
Exit Function
End If
chaine = ""
Decompose(nb)
chaine = Replace(chaine, " ", " ")
chaine = Replace(chaine, "- ", "-")
NBLT = chaine
End Function
Private Function Decompose(ByVal Nombre As Long) As String
Dim Reste As Long
If Nombre > (10 ^ 9) Then
Reste = Nombre Mod (10 ^ 9)
Nombre = Nombre \ (10 ^ 9)
If Nombre > 10 Then
Decompose(Nombre)
Else
chaine += chiffre(Convert.ToInt16(Nombre))
End If
chaine += " milliard"
If Nombre > 1 Then chaine += "s"
Decompose(Reste)
Else
If Nombre > (10 ^ 6) Then
Reste = Nombre Mod (10 ^ 6)
Nombre = Nombre \ (10 ^ 6)
If Nombre > 10 Then
Decompose(Nombre)
Else
chaine += " " & chiffre(Convert.ToInt16(Nombre))
End If
chaine += " million"
If Nombre > 1 Then chaine += "s"
Decompose(Reste)
Else
If Nombre >= (10 ^ 3) Then
Reste = Nombre Mod (10 ^ 3)
Nombre = Nombre \ (10 ^ 3)
If Nombre > 10 Then
Decompose(Nombre)
Else
If Nombre > 1 Then chaine += " " & chiffre(Convert.ToInt16(Nombre))
End If
chaine += " mille"
Decompose(Reste)
Else
If Nombre >= (100) Then
Reste = Nombre Mod (100)
Nombre = Nombre \ (100)
If Nombre > 10 Then
Decompose(Nombre)
Else
If Nombre > 1 Then chaine += " " & chiffre(Convert.ToInt16(Nombre))
End If
chaine += " cent"
If Nombre > 1 And Reste = 0 Then chaine += "s"
Decompose(Reste)
Else
If Nombre >= 80 And Nombre < 100 Then
Reste = Nombre Mod 20
Nombre = Nombre \ 20
If Nombre > 10 Then
Decompose(Nombre)
Else
chaine += " " & chiffre(Convert.ToInt16(Nombre))
End If
chaine += "-vingt"
Decompose(Reste)
Else
If Nombre < 20 And Nombre > 9 Then
chaine += " " & chiffre(Convert.ToInt16(Nombre))
Else
If Nombre > 19 And Nombre < 70 Then
Reste = Nombre Mod 10
Nombre = Nombre \ 10
If Nombre > 10 Then
Decompose(Nombre)
Else
chaine += " " & dizaine(Convert.ToInt16(Nombre))
End If
If Reste = 1 Then
chaine += " et" ' Cas particlier (Ving et un , trante et un , etc...)
Else
If Reste <> 0 Then chaine += "-"
End If
Decompose(Reste)
Else
If Nombre >= 70 Then
chaine += " soixante"
Reste = Nombre - 60
If Reste = 1 Or Reste = 11 Then chaine += " et"
Decompose(Reste)
Else
If Nombre < 10 Then chaine += " " & chiffre(Convert.ToInt16(Nombre))
End If
End If
End If
End If
End If
End If
End If
End If
End Function
End Module
Conclusion
Il a fallu adapté un peu le code en fonction des cas particuliers.(ex: 70,80,90) Je reste à votre disposition pout toutes questions, commentaires et améliorations.
Historique
- 14 septembre 2006 10:03:43 :
- Je te remercie de tes remarques. J'ai donc revu le code en conséquence.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Ascii conversion chiffre <=> lettre [ par deetsrider ]
Je voudrais rajouter +1 au code ascii de chaque lettre tapée dans un textbox puis le reinscrire dans l autre textbox avec son nouveau code ..."a" devi
CONVERSION CHIFFRE LETTRE MONNAIE LIVRE PENCE [ par florianelle ]
conversion de chiffre en lettre [ par zober ]
Salut tt le mondeVoila, je programme sous access une application pour gerer les ventes de produits d'une société. Je veux convertir dans l'e
conversion chiffre en lettre [ par aakpa ]
Bonjour,Dans une application VB6, je voudrais avois la possibilité de convertir automatiquement les nombres saisis en lettre. Exemple 18 en dix huit.M
LETTRE EN CHIFFRE [ par oranat ]
Bonjour, j'ai besoin de votre aide, j'ai besoin d'un algorithme qui transforme les lettres en chiffre, j'ai déjà réussi à faire l'inverse, c'est à dir
Probleme de conversion [ par mrsebaa ]
Hello! J'ai la fontion de conversion d'un chiffre en lettre. Je voudrais savoir comment convertir un chiffre d'une Function DataReport dans un label.
Transformer un nombre en chiffre [ par blacksanga ]
Salut Je travail dans word pour un envoie de lettre en publipostage,dans cette lettre j'ai un champs contenant un nombre (par exemple: 548000) j'aimer
Modification de chiffre en lettre dans acces2007 [ par guerwen ]
Bonjour je n'arrive plus à faire fonctionner chlettre dans acces2007 [^^sad1] c'est une fonction que j'utilisais couramment dans acces2003 quelqu'un à
code convertiseur de chiffre en lettre [ par HERVEHADJO ]
je desire avoir le code qui permet de convertir les chiffre en lettres merci et bonne journée
Macro de conversion dans catia v5 [ par Arzhel ]
Bonjour à tous, Je cherche un moyen (une macro me semble correspondre le plus à ma démarche) de convertir un caractère quelquonque en entitées filair
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|