Bonjour,
Pour ne pas refaire ce qui (peut être) existe déjà, qui
peut m'indiquer un moyen simple pour convertir un montant
saisi en chiffres dans un montant en toutes lettres ?
D'avance merci.
Gérard
Bonjour,
Pour ne pas refaire ce qui (peut être) existe déjà, qui
peut m'indiquer un moyen simple pour convertir un montant
saisi en chiffres dans un montant en toutes lettres ?
D'avance merci.
Gérard
Bonjour,
Pour ne pas refaire ce qui (peut être) existe déjà, qui
peut m'indiquer un moyen simple pour convertir un montant
saisi en chiffres dans un montant en toutes lettres ?
D'avance merci.
Gérard
-----Message d'origine-----
Bonjour,
Pour ne pas refaire ce qui (peut être) existe déjà, qui
peut m'indiquer un moyen simple pour convertir un montant
saisi en chiffres dans un montant en toutes lettres ?
D'avance merci.
Gérard
.
-----Message d'origine-----
Bonjour,
Pour ne pas refaire ce qui (peut être) existe déjà, qui
peut m'indiquer un moyen simple pour convertir un montant
saisi en chiffres dans un montant en toutes lettres ?
D'avance merci.
Gérard
.
-----Message d'origine-----
Bonjour,
Pour ne pas refaire ce qui (peut être) existe déjà, qui
peut m'indiquer un moyen simple pour convertir un montant
saisi en chiffres dans un montant en toutes lettres ?
D'avance merci.
Gérard
.
-----Message d'origine-----
Bonjour,
Pour ne pas refaire ce qui (peut être) existe déjà, qui
peut m'indiquer un moyen simple pour convertir un montant
saisi en chiffres dans un montant en toutes lettres ?
D'avance merci.
Gérard
.
-----Message d'origine-----
Bonjour,
Pour ne pas refaire ce qui (peut être) existe déjà, qui
peut m'indiquer un moyen simple pour convertir un montant
saisi en chiffres dans un montant en toutes lettres ?
D'avance merci.
Gérard
.
-----Message d'origine-----
Bonjour,
Pour ne pas refaire ce qui (peut être) existe déjà, qui
peut m'indiquer un moyen simple pour convertir un montant
saisi en chiffres dans un montant en toutes lettres ?
D'avance merci.
Gérard
.
-----Message d'origine-----
Bonjour Gérard,
Voila le programme que j'utilise
pour établir des factures au quotidien.
A adapter selon que tu sois français,
suisse etc..
Il est au top pour la Belgique.
Mais le travail est déjà "mâché" pour la France
(voir derrière les ' )
a+
Jean-Pol DAVID
www.peintures-david.com
ICQ 28394733
--
Quis ? Quid ? Ubi ? Quibus auxiliis ? Cur ? Quomodo ?
Function NBenLettres(nb)
'
Dim varnum, varnumD, varnumU, varlet ', résultat
'
'varnum : pour stocker les parties du nombre que l'on va
'varlet : pour stocker la conversion en lettres d'une
'varnumD : pour stocker la partie dizaine d'un nombre à 2
'varnumU : pour stocker la partie unité d'un nombre à 2
'résultat : pour stocker les résultats intermédiaires des
'
Static chiffre(1 To 19) '*** tableau contenant le nom des
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"
Static dizaine(1 To 9) '*** tableau contenant les noms
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 zéro franc
If nb >= 1 Then
résultat = ""
Else
résultat = "zéro"
GoTo fintraitementfrancs
End If
'*** Traitement des millions
varnum = Int(nb / 1000000)
If varnum > 0 Then
GoSub centaine_dizaine
résultat = varlet + " million"
If varlet <> "un" Then résultat = résultat + "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 résultat = résultat + " " + varlet
résultat = résultat + " mille"
End If
'
'*** Traitement des centaines et dizaines
varnum = Int(nb) Mod 1000
If varnum > 0 Then
GoSub centaine_dizaine
résultat = résultat + " " + varlet
End If
résultat = LTrim(résultat)
varlet = Right$(résultat, 4)
'
'*** Traitement du "s" final pour vingt et cent et
Select Case varlet
Case "cent", "ingt"
résultat = résultat + "s"
Case "lion", "ions"
résultat = résultat + " de"
End Select
fintraitementfrancs: '*** Etiquette de branchement pour
'
'*** Indication du terme franc
résultat = résultat + " euro"
If nb >= 2 Then résultat = résultat + "s"
'
'*** Traitement des centimes
varnum = Int((nb - Int(nb)) * 100 + 0.5) '*** On
'*** afin de compenser
'*** les erreurs de calcul
'*** dues aux arrondis
If varnum > 0 Then
GoSub centaine_dizaine
résultat = résultat + " et " + varlet + " centime"
If varnum > 1 Then résultat = résultat + "s"
End If
'
'*** Conversion 1ère lettre en majuscule
résultat = UCase(Left(résultat, 1)) + Right(résultat, Len
'
'*** renvoie du résultat de la fonction et fin de la
NBenLettres = résultat
Exit Function
'
centaine_dizaine: '*** Sous-programme de conversion en
'*** des centaines et dizaines
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 '*** Cas où la dizaine est <20
If varnum > 0 Then varlet = varlet + chiffre(varnum)
Else '*** Autres cas
varnumD = Int(varnum / 10) '*** chiffre des dizaines
varnumU = varnum Mod 10 '*** chiffre des unités
'''Select Case varnumD '*** génération des dizaines en
varlet = varlet + dizaine(varnumD)
'''Case Is <= 5
'''varlet = varlet + dizaine(varnumD)
'''Case 6, 7
'''varlet = varlet + dizaine(6)
'''Case 8, 9
'''varlet = varlet + dizaine(8)
'''End Select
'
'*** traitement du séparateur des dizaines et unités
If varnumU = 1 And varnumD < 8 Then
varlet = varlet + " et "
Else
If varnumU <> 0 Then
varlet = varlet + "-" '''Or varnumD = 7 Or varnumD = 9
End If
End If
'*** génération des unités
'''If varnumD = 7 Or varnumD = 9 Then varnumU = varnumU +
If varnumU <> 0 Then varlet = varlet + chiffre(varnumU)
End If
'
'*** Suppression des espaces à gauche et retour
varlet = RTrim(varlet)
Return
End Function
.
-----Message d'origine-----
Bonjour Gérard,
Voila le programme que j'utilise
pour établir des factures au quotidien.
A adapter selon que tu sois français,
suisse etc..
Il est au top pour la Belgique.
Mais le travail est déjà "mâché" pour la France
(voir derrière les ' )
a+
Jean-Pol DAVID
www.peintures-david.com
ICQ 28394733
--
Quis ? Quid ? Ubi ? Quibus auxiliis ? Cur ? Quomodo ?
Function NBenLettres(nb)
'
Dim varnum, varnumD, varnumU, varlet ', résultat
'
'varnum : pour stocker les parties du nombre que l'on va
'varlet : pour stocker la conversion en lettres d'une
'varnumD : pour stocker la partie dizaine d'un nombre à 2
'varnumU : pour stocker la partie unité d'un nombre à 2
'résultat : pour stocker les résultats intermédiaires des
'
Static chiffre(1 To 19) '*** tableau contenant le nom des
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"
Static dizaine(1 To 9) '*** tableau contenant les noms
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 zéro franc
If nb >= 1 Then
résultat = ""
Else
résultat = "zéro"
GoTo fintraitementfrancs
End If
'*** Traitement des millions
varnum = Int(nb / 1000000)
If varnum > 0 Then
GoSub centaine_dizaine
résultat = varlet + " million"
If varlet <> "un" Then résultat = résultat + "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 résultat = résultat + " " + varlet
résultat = résultat + " mille"
End If
'
'*** Traitement des centaines et dizaines
varnum = Int(nb) Mod 1000
If varnum > 0 Then
GoSub centaine_dizaine
résultat = résultat + " " + varlet
End If
résultat = LTrim(résultat)
varlet = Right$(résultat, 4)
'
'*** Traitement du "s" final pour vingt et cent et
Select Case varlet
Case "cent", "ingt"
résultat = résultat + "s"
Case "lion", "ions"
résultat = résultat + " de"
End Select
fintraitementfrancs: '*** Etiquette de branchement pour
'
'*** Indication du terme franc
résultat = résultat + " euro"
If nb >= 2 Then résultat = résultat + "s"
'
'*** Traitement des centimes
varnum = Int((nb - Int(nb)) * 100 + 0.5) '*** On
'*** afin de compenser
'*** les erreurs de calcul
'*** dues aux arrondis
If varnum > 0 Then
GoSub centaine_dizaine
résultat = résultat + " et " + varlet + " centime"
If varnum > 1 Then résultat = résultat + "s"
End If
'
'*** Conversion 1ère lettre en majuscule
résultat = UCase(Left(résultat, 1)) + Right(résultat, Len
'
'*** renvoie du résultat de la fonction et fin de la
NBenLettres = résultat
Exit Function
'
centaine_dizaine: '*** Sous-programme de conversion en
'*** des centaines et dizaines
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 '*** Cas où la dizaine est <20
If varnum > 0 Then varlet = varlet + chiffre(varnum)
Else '*** Autres cas
varnumD = Int(varnum / 10) '*** chiffre des dizaines
varnumU = varnum Mod 10 '*** chiffre des unités
'''Select Case varnumD '*** génération des dizaines en
varlet = varlet + dizaine(varnumD)
'''Case Is <= 5
'''varlet = varlet + dizaine(varnumD)
'''Case 6, 7
'''varlet = varlet + dizaine(6)
'''Case 8, 9
'''varlet = varlet + dizaine(8)
'''End Select
'
'*** traitement du séparateur des dizaines et unités
If varnumU = 1 And varnumD < 8 Then
varlet = varlet + " et "
Else
If varnumU <> 0 Then
varlet = varlet + "-" '''Or varnumD = 7 Or varnumD = 9
End If
End If
'*** génération des unités
'''If varnumD = 7 Or varnumD = 9 Then varnumU = varnumU +
If varnumU <> 0 Then varlet = varlet + chiffre(varnumU)
End If
'
'*** Suppression des espaces à gauche et retour
varlet = RTrim(varlet)
Return
End Function
.
-----Message d'origine-----
Bonjour Gérard,
Voila le programme que j'utilise
pour établir des factures au quotidien.
A adapter selon que tu sois français,
suisse etc..
Il est au top pour la Belgique.
Mais le travail est déjà "mâché" pour la France
(voir derrière les ' )
a+
Jean-Pol DAVID
www.peintures-david.com
ICQ 28394733
--
Quis ? Quid ? Ubi ? Quibus auxiliis ? Cur ? Quomodo ?
Function NBenLettres(nb)
'
Dim varnum, varnumD, varnumU, varlet ', résultat
'
'varnum : pour stocker les parties du nombre que l'on va
'varlet : pour stocker la conversion en lettres d'une
'varnumD : pour stocker la partie dizaine d'un nombre à 2
'varnumU : pour stocker la partie unité d'un nombre à 2
'résultat : pour stocker les résultats intermédiaires des
'
Static chiffre(1 To 19) '*** tableau contenant le nom des
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"
Static dizaine(1 To 9) '*** tableau contenant les noms
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 zéro franc
If nb >= 1 Then
résultat = ""
Else
résultat = "zéro"
GoTo fintraitementfrancs
End If
'*** Traitement des millions
varnum = Int(nb / 1000000)
If varnum > 0 Then
GoSub centaine_dizaine
résultat = varlet + " million"
If varlet <> "un" Then résultat = résultat + "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 résultat = résultat + " " + varlet
résultat = résultat + " mille"
End If
'
'*** Traitement des centaines et dizaines
varnum = Int(nb) Mod 1000
If varnum > 0 Then
GoSub centaine_dizaine
résultat = résultat + " " + varlet
End If
résultat = LTrim(résultat)
varlet = Right$(résultat, 4)
'
'*** Traitement du "s" final pour vingt et cent et
Select Case varlet
Case "cent", "ingt"
résultat = résultat + "s"
Case "lion", "ions"
résultat = résultat + " de"
End Select
fintraitementfrancs: '*** Etiquette de branchement pour
'
'*** Indication du terme franc
résultat = résultat + " euro"
If nb >= 2 Then résultat = résultat + "s"
'
'*** Traitement des centimes
varnum = Int((nb - Int(nb)) * 100 + 0.5) '*** On
'*** afin de compenser
'*** les erreurs de calcul
'*** dues aux arrondis
If varnum > 0 Then
GoSub centaine_dizaine
résultat = résultat + " et " + varlet + " centime"
If varnum > 1 Then résultat = résultat + "s"
End If
'
'*** Conversion 1ère lettre en majuscule
résultat = UCase(Left(résultat, 1)) + Right(résultat, Len
'
'*** renvoie du résultat de la fonction et fin de la
NBenLettres = résultat
Exit Function
'
centaine_dizaine: '*** Sous-programme de conversion en
'*** des centaines et dizaines
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 '*** Cas où la dizaine est <20
If varnum > 0 Then varlet = varlet + chiffre(varnum)
Else '*** Autres cas
varnumD = Int(varnum / 10) '*** chiffre des dizaines
varnumU = varnum Mod 10 '*** chiffre des unités
'''Select Case varnumD '*** génération des dizaines en
varlet = varlet + dizaine(varnumD)
'''Case Is <= 5
'''varlet = varlet + dizaine(varnumD)
'''Case 6, 7
'''varlet = varlet + dizaine(6)
'''Case 8, 9
'''varlet = varlet + dizaine(8)
'''End Select
'
'*** traitement du séparateur des dizaines et unités
If varnumU = 1 And varnumD < 8 Then
varlet = varlet + " et "
Else
If varnumU <> 0 Then
varlet = varlet + "-" '''Or varnumD = 7 Or varnumD = 9
End If
End If
'*** génération des unités
'''If varnumD = 7 Or varnumD = 9 Then varnumU = varnumU +
If varnumU <> 0 Then varlet = varlet + chiffre(varnumU)
End If
'
'*** Suppression des espaces à gauche et retour
varlet = RTrim(varlet)
Return
End Function
.