Auteur

MVP Office Access 2003, 2004, 2005 et 2006

Qui sont les MVP ?

 
 

Codes pour Access

+ Base de données
+ Administrateur
+ Table
+ Requête
+ Formulaire
+ Dates & Heures
 -  Nombre
+ Math
+ Fichier
+ Commandes externes
+ Automation
+ Equivalence
 
 

Tuto Access 2007

+ Base de données
 
 

Lettre d'information

Pour avoir des nouvelles de ce site, inscrivez-vous à notre Newsletter.
S'abonner
Se désabonner

captcha
Merci de recopier le code alphanumérique ci-dessus
114 Abonnés
 
 

Nombre - Convertir nombre en lettre (français)

Description 

Cette fonction permet de convertir un nombre en toutes lettres dans la langue française.

 
Synthaxe 

Expression = ConvertNbLettres(nb, devise)

La synthaxe de la fonction ConvertNbLettres comprend les éléments suivants :

ElémentsDescription

nb

Expression numérique correspondant au nombre que l'on souhaite écrire en toutes lettre.
deviseExpression de chaîne correspondant à la devise que l'on souhaite écrire après le nombre.
 
Exemple 

Aucun exemple disponible pour le moment.

 
Code de la fonction 


Public Function ConvertNbLettres(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 8)
    dizaine(1) = "dix"
    dizaine(2) = "vingt"
    dizaine(3) = "trente"
    dizaine(4) = "quarante"
    dizaine(5) = "cinquante"
    dizaine(6) = "soixante"
    dizaine(8) = "quatre-vingt"

'traitement du cas 0
If Nb >= 1 Then
    resultat = ""
Else
    resultat = "zéro"
    GoTo fintraitementfrancs
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

fintraitementfrancs:
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
ConvertNbLettres = 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
    Select Case varnumD
        Case Is <= 5
            varlet = varlet + dizaine(varnumD)
        Case 6, 7
            varlet = varlet + dizaine(6)
         Case 8, 9
             varlet = varlet + dizaine(8)
    End Select
    If varnumU = 1 And varnumD < 8 Then
        varlet = varlet + " et "
    Else
        If varnumU <> 0 Or varnumD = 7 Or varnumD = 9 Then: varlet = varlet + " "
    End If
    If varnumD = 7 Or varnumD = 9 Then: varnumU = varnumU + 10
    If varnumU <> 0 Then: varlet = varlet + Chiffre(varnumU)
End If

varlet = RTrim(varlet)
Return

End Function

 


Date de création : 20/10/2006 @ 15:25
Dernière modification : 20/10/2006 @ 15:25
Catégorie : Nombre
Page lue 1608 fois


Prévisualiser la page Prévisualiser la page     Imprimer la page Imprimer la page

 
 

Réactions à cet article


Personne n'a encore laissé de commentaire.
Soyez donc le premier !


 
 

Recherche




Google

 
 

Préférences

Votre nom (ou pseudo) :

Votre mot de passe :

     


Membres 76 Membres

membres les 10 derniers :
jujubegood   Rachid   fifimeyrou   MoxQwoidT   fof_alaz   bellemeche   Bruno   fatima   foubay   feever   
Membre en ligne : Membre en ligne :
( personne )
Anonyme en ligne : Anonyme en ligne : 1

Total visites : Total visites : 120383  
hit Affluence record: 102
le 17/06/2007 @ 07:36

Ecrire à Jessy SEMPERE Ajouter aux favoris Recommander ce site à un ami Version mobile
 
 


Design Jessy © 2007 - Compatible IE6, IE7 et Mozilla 2.0.0.1

  Site créé avec GuppY v4.5.18 © 2004-2005 - Licence Libre CeCILL

Document généré en 0.09 seconde