MVP Office Access 2003, 2004, 2005 et 2006
Base de données Base de données Administrateur Administrateur Table Table Requête Requête Formulaire Formulaire Dates & Heures Dates & Heures Nombre Nombre Math Math Fichier Fichier Commandes externes Commandes externes Automation Automation Equivalence Equivalence
Base de données Base de données
|
Nombre - Convertir nombre en lettre (belge)
| | Cette fonction permet de convertir un nombre en toutes lettres dans la langue belge. | | | | | | | |
| | Expression = ConvertNbLettresBelge(nb, devise)
La synthaxe de la fonction ConvertNbLettresBelge comprend les éléments suivants : Eléments | Description | nb | Expression numérique correspondant au nombre que l'on souhaite écrire en toutes lettre. | devise | Expression de chaîne correspondant à la devise que l'on souhaite écrire après le nombre. |
| | | | | | | |
| | Aucun exemple disponible pour le moment. | | | | | | | |
| |
Public Function ConvertNbLettresBelge(Nb, Devise As String) As String Dim varnum, varnumD, varnumU, resultat, varlet
Static Chiffre(1 To 19) 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"
Static dizaine(1 To 9) dizaine(1) = "dix" dizaine(2) = "vingt" dizaine(3) = "trente" dizaine(4) = "quarante" dizaine(5) = "cinquante" dizaine(6) = "soixante" dizaine(7) = "septante" dizaine(8) = "quatre-vingt" dizaine(9) = "nonante"
'traitement du cas 0 If Nb >= 1 Then resultat = "" Else resultat = "zéro" GoTo FinTraitement End If
'traitement des millions varnum = Int(Nb / 1000000) If varnum > 0 Then GoSub centaine_dizaine resultat = varlet + " million" If varlet <> "un" Then: resultat = resultat + "s" End If
'traitement des milliers varnum = Int(Nb) Mod 1000000 varnum = Int(varnum / 1000) If varnum > 0 Then GoSub centaine_dizaine If varlet <> "un" Then: resultat = resultat + " " + varlet resultat = resultat + " mille" End If
'traitement des centaines et dizaines varnum = Int(Nb) Mod 1000 If varnum > 0 Then GoSub centaine_dizaine resultat = resultat + " " + varlet End If resultat = LTrim(resultat) varlet = Right$(resultat, 4)
'traitement du "s" final pour vingt et cent et du "de" pour million Select Case varlet Case "cent", "ingt" resultat = resultat + "s" Case "lion", "ions" resultat = resultat + " de" End Select
FinTraitement: resultat = resultat + " " + Devise If Nb > 2 Then: resultat = resultat + "s"
'traitement des centimes varnum = Int((Nb - Int(Nb)) * 100 + 0.5) If varnum > 0 Then GoSub centaine_dizaine resultat = resultat + " et " + varlet + " centime" If varnum > 1 Then: resultat = resultat + "s" End If
'conversion 1ère lettre en majuscule resultat = UCase(Left(resultat, 1)) + Right(resultat, Len(resultat) - 1)
'renvoi du resultat de la fonction et fin de la fonction ConvertNbLettresBelge = resultat Exit Function
'sous programme centaine_dizaine: varlet = ""
'traitement des centaines If varnum >= 100 Then varlet = Chiffre(Int(varnum / 100)) varnum = varnum Mod 100 If varlet = "un" Then varlet = "cent " Else varlet = varlet + " cent " End If End If
'traitement des dizaines If varnum <= 19 Then If varnum > 0 Then: varlet = varlet + Chiffre(varnum) Else varnumD = Int(varnum / 10) varnumU = varnum Mod 10 varlet = varlet + dizaine(varnumD) If varnumU = 1 Then varlet = varlet + " et " Else If varnumU <> 0 Then: varlet = varlet + " " End If If varnumU <> 0 Then: varlet = varlet + Chiffre(varnumU) End If
varlet = RTrim(varlet) Return
End Function | | |
Date de création : 20/10/2006 @ 15:50
Dernière modification : 20/10/2006 @ 15:50
Catégorie : Nombre
Page lue 1497 fois
Prévisualiser la page
Imprimer la page
Personne n'a encore laissé de commentaire. Soyez donc le premier ! |
|
79 Membres
les 10 derniers :
Membre en ligne :
( personne ) Anonymes en ligne : 6
Total visites : 174493
Affluence record: 102
le 17/06/2007 @ 07:36
|