OVH Cloud OVH Cloud

Function de conersion

11 réponses
Avatar
Toure Mamadou
Bonjour !
J'aimerai savoir s'il existe une fonction me permettant=20
de convertir une date =E9crite en chiffres en une date=20
=E9crite en lettre.
Ex:1968(Milles neuf cents soixante huit

10 réponses

1 2
Avatar
HECHT Franck
Salut,

As-tu déjà essayé la fonction CStr, cela converti en
chaine de caracteres mais pour les dates faut essayer !!


-----Message d'origine-----
Bonjour !
J'aimerai savoir s'il existe une fonction me permettant
de convertir une date écrite en chiffres en une date
écrite en lettre.
Ex:1968(Milles neuf cents soixante huit
.



Avatar
HECHT Franck
Rerere....

Oups, me suis trompé pour la fonction, lol, j'avais po vu
ton exemple !! A ce niveau là je peut rien pour toua dsl
et pis cela m'etonnerais que ca existe a moins de la
faire toi meme ;)


-----Message d'origine-----
Bonjour !
J'aimerai savoir s'il existe une fonction me permettant
de convertir une date écrite en chiffres en une date
écrite en lettre.
Ex:1968(Milles neuf cents soixante huit
.



Avatar
HECHT Franck
Rerere....

Oups, me suis trompé pour la fonction, lol, j'avais po vu
ton exemple !! A ce niveau là je peut rien pour toua dsl
et pis cela m'etonnerais que ca existe a moins de la
faire toi meme ;)


-----Message d'origine-----
Bonjour !
J'aimerai savoir s'il existe une fonction me permettant
de convertir une date écrite en chiffres en une date
écrite en lettre.
Ex:1968(Milles neuf cents soixante huit
.



Avatar
Patrice Henrio
En fait il s'agirait d'une fonction convertissant un nombre entier en
lettres. cela n'existe pas tout fait même si de nombreux programmeurs ont
déjà réalisé cela. En tout cas ce n'est pas simple, L'exemple que tu cites
en est un exemple car il comporte deux fautes. Une faute de frappe t'as fait
écrire "Mille" avec un "S". Mais surtout, le mot cent est invariable dans un
nombre sauf s'il n'est pas suivi d'autres chiffres : ainsi on écrit "Mille
neuf cents" mais "Mille neuf cent soixante huit".
De même on écrit "quatre-vingts" mais "quatre-vingt un".
Par contre "mille" est toujours invariable en tant que nombre.

"Toure Mamadou" a écrit dans le message de
news:e2f501c3bbf8$8bac6340$
Bonjour !
J'aimerai savoir s'il existe une fonction me permettant
de convertir une date écrite en chiffres en une date
écrite en lettre.
Ex:1968(Milles neuf cents soixante huit
Avatar
David
Bonjour

1968 n'évoque pas pour moi
une date mais un nombre;
voici donc un sous-programme
pour convertir un nombre en lettre.
(avec euro et centimes)


Function NBenLettres(nb)
'
Dim varnum, varnumD, varnumU, varlet ', résultat
'
'varnum : pour stocker les parties du nombre que
l'on va découper
'varlet : pour stocker la conversion en lettres
d'une partie du nombre
'varnumD : pour stocker la partie dizaine d'un
nombre à 2 chiffres
'varnumU : pour stocker la partie unité d'un
nombre à 2 chiffres
'résultat : pour stocker les résultats
intermédiaires des différentes étapes
'
Static chiffre(1 To 19) '*** tableau contenant le
nom des 16 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"
Static dizaine(1 To 9) '*** tableau contenant les
noms des dizaines
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
du "de" pour million
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 le cas "zéro franc"
'
'*** 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
additionne 0,5
'*** 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(résultat) - 1)
'
'*** renvoie du résultat de la fonction et fin de
la fonction
NBenLettres = résultat
Exit Function
'
centaine_dizaine: '*** Sous-programme de
conversion en lettres
'*** 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 lettres

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 + 10
If varnumU <> 0 Then varlet = varlet +
chiffre(varnumU)
End If
'
'*** Suppression des espaces à gauche et retour
varlet = RTrim(varlet)
Return
End Function


a+
Jean-Pol DAVID
mailto:
www.peintures-david.com
ICQ 28394733
--
Quis ? Quid ? Ubi ? Quibus auxiliis ? Cur ?
Quomodo ? Quando ?

"Patrice Henrio"
a écrit dans
le message news:
#0siL3$
En fait il s'agirait d'une fonction


convertissant un nombre entier en
lettres. cela n'existe pas tout fait même si de


nombreux programmeurs ont
déjà réalisé cela. En tout cas ce n'est pas


simple, L'exemple que tu cites
en est un exemple car il comporte deux fautes.


Une faute de frappe t'as fait
écrire "Mille" avec un "S". Mais surtout, le mot


cent est invariable dans un
nombre sauf s'il n'est pas suivi d'autres


chiffres : ainsi on écrit "Mille
neuf cents" mais "Mille neuf cent soixante


huit".
De même on écrit "quatre-vingts" mais


"quatre-vingt un".
Par contre "mille" est toujours invariable en


tant que nombre.

"Toure Mamadou" a écrit


dans le message de
news:e2f501c3bbf8$8bac6340$
Bonjour !
J'aimerai savoir s'il existe une fonction me


permettant
de convertir une date écrite en chiffres en une


date
écrite en lettre.
Ex:1968(Milles neuf cents soixante huit




Avatar
ng
dizaine(7) = "septante"
dizaine(9) = "nonante"
Mouarf :-)

"David" a écrit dans le message de news:
#

Bonjour

1968 n'évoque pas pour moi
une date mais un nombre;
voici donc un sous-programme
pour convertir un nombre en lettre.
(avec euro et centimes)


Function NBenLettres(nb)
'
Dim varnum, varnumD, varnumU, varlet ', résultat
'
'varnum : pour stocker les parties du nombre que
l'on va découper
'varlet : pour stocker la conversion en lettres
d'une partie du nombre
'varnumD : pour stocker la partie dizaine d'un
nombre à 2 chiffres
'varnumU : pour stocker la partie unité d'un
nombre à 2 chiffres
'résultat : pour stocker les résultats
intermédiaires des différentes étapes
'
Static chiffre(1 To 19) '*** tableau contenant le
nom des 16 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"
Static dizaine(1 To 9) '*** tableau contenant les
noms des dizaines
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
du "de" pour million
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 le cas "zéro franc"
'
'*** 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
additionne 0,5
'*** 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(résultat) - 1)
'
'*** renvoie du résultat de la fonction et fin de
la fonction
NBenLettres = résultat
Exit Function
'
centaine_dizaine: '*** Sous-programme de
conversion en lettres
'*** 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 lettres

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 + 10
If varnumU <> 0 Then varlet = varlet +
chiffre(varnumU)
End If
'
'*** Suppression des espaces à gauche et retour
varlet = RTrim(varlet)
Return
End Function


a+
Jean-Pol DAVID
mailto:
www.peintures-david.com
ICQ 28394733
--
Quis ? Quid ? Ubi ? Quibus auxiliis ? Cur ?
Quomodo ? Quando ?

"Patrice Henrio"
a écrit dans
le message news:
#0siL3$
> En fait il s'agirait d'une fonction
convertissant un nombre entier en
> lettres. cela n'existe pas tout fait même si de
nombreux programmeurs ont
> déjà réalisé cela. En tout cas ce n'est pas
simple, L'exemple que tu cites
> en est un exemple car il comporte deux fautes.
Une faute de frappe t'as fait
> écrire "Mille" avec un "S". Mais surtout, le mot
cent est invariable dans un
> nombre sauf s'il n'est pas suivi d'autres
chiffres : ainsi on écrit "Mille
> neuf cents" mais "Mille neuf cent soixante
huit".
> De même on écrit "quatre-vingts" mais
"quatre-vingt un".
> Par contre "mille" est toujours invariable en
tant que nombre.
>
> "Toure Mamadou" a écrit
dans le message de
> news:e2f501c3bbf8$8bac6340$
> Bonjour !
> J'aimerai savoir s'il existe une fonction me
permettant
> de convertir une date écrite en chiffres en une
date
> écrite en lettre.
> Ex:1968(Milles neuf cents soixante huit
>
>



Avatar
Jean-Marc
"ng" a écrit dans le message de
news:
dizaine(7) = "septante"
dizaine(9) = "nonante"
Mouarf :-)



Et oui, cette conversion est beaucoup plus simple à écire pour nos amis
belges, suisses et quebecois.
Le problème est plus compliqué en français tel qu'on le parle en france:

septante-six => soixante seize
septante-sept => soixante dix sept

plus compliqué à écrire proprement, mais rien de bien méchant :-)


"David" a écrit dans le message de news:
#
>
> Bonjour
>
> 1968 n'évoque pas pour moi
> une date mais un nombre;
> voici donc un sous-programme
> pour convertir un nombre en lettre.
> (avec euro et centimes)
>
>
> Function NBenLettres(nb)
> '
> Dim varnum, varnumD, varnumU, varlet ', résultat
> '
> 'varnum : pour stocker les parties du nombre que
> l'on va découper
> 'varlet : pour stocker la conversion en lettres
> d'une partie du nombre
> 'varnumD : pour stocker la partie dizaine d'un
> nombre à 2 chiffres
> 'varnumU : pour stocker la partie unité d'un
> nombre à 2 chiffres
> 'résultat : pour stocker les résultats
> intermédiaires des différentes étapes
> '
> Static chiffre(1 To 19) '*** tableau contenant le
> nom des 16 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"
> Static dizaine(1 To 9) '*** tableau contenant les
> noms des dizaines
> 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
> du "de" pour million
> 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 le cas "zéro franc"
> '
> '*** 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
> additionne 0,5
> '*** 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(résultat) - 1)
> '
> '*** renvoie du résultat de la fonction et fin de
> la fonction
> NBenLettres = résultat
> Exit Function
> '
> centaine_dizaine: '*** Sous-programme de
> conversion en lettres
> '*** 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 lettres
>
> 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 + 10
> If varnumU <> 0 Then varlet = varlet +
> chiffre(varnumU)
> End If
> '
> '*** Suppression des espaces à gauche et retour
> varlet = RTrim(varlet)
> Return
> End Function
>
>
> a+
> Jean-Pol DAVID
> mailto:
> www.peintures-david.com
> ICQ 28394733
> --
> Quis ? Quid ? Ubi ? Quibus auxiliis ? Cur ?
> Quomodo ? Quando ?
>
> "Patrice Henrio"
> a écrit dans
> le message news:
> #0siL3$
> > En fait il s'agirait d'une fonction
> convertissant un nombre entier en
> > lettres. cela n'existe pas tout fait même si de
> nombreux programmeurs ont
> > déjà réalisé cela. En tout cas ce n'est pas
> simple, L'exemple que tu cites
> > en est un exemple car il comporte deux fautes.
> Une faute de frappe t'as fait
> > écrire "Mille" avec un "S". Mais surtout, le mot
> cent est invariable dans un
> > nombre sauf s'il n'est pas suivi d'autres
> chiffres : ainsi on écrit "Mille
> > neuf cents" mais "Mille neuf cent soixante
> huit".
> > De même on écrit "quatre-vingts" mais
> "quatre-vingt un".
> > Par contre "mille" est toujours invariable en
> tant que nombre.
> >
> > "Toure Mamadou" a écrit
> dans le message de
> > news:e2f501c3bbf8$8bac6340$
> > Bonjour !
> > J'aimerai savoir s'il existe une fonction me
> permettant
> > de convertir une date écrite en chiffres en une
> date
> > écrite en lettre.
> > Ex:1968(Milles neuf cents soixante huit
> >
> >
>




Avatar
Patrice Henrio
Sans parler des particularités dont je parlais ci-dessus : "quatre-vingts"
et "quatre-vingt trois"

"Jean-Marc" a écrit dans le message de
news:3fd2333a$0$5476$
"ng" a écrit dans le message de
news:
> dizaine(7) = "septante"
> dizaine(9) = "nonante"
> Mouarf :-)

Et oui, cette conversion est beaucoup plus simple à écire pour nos amis
belges, suisses et quebecois.
Le problème est plus compliqué en français tel qu'on le parle en france:

septante-six => soixante seize
septante-sept => soixante dix sept

plus compliqué à écrire proprement, mais rien de bien méchant :-)

>
> "David" a écrit dans le message de news:
> #
> >
> > Bonjour
> >
> > 1968 n'évoque pas pour moi
> > une date mais un nombre;
> > voici donc un sous-programme
> > pour convertir un nombre en lettre.
> > (avec euro et centimes)
> >
> >
> > Function NBenLettres(nb)
> > '
> > Dim varnum, varnumD, varnumU, varlet ', résultat
> > '
> > 'varnum : pour stocker les parties du nombre que
> > l'on va découper
> > 'varlet : pour stocker la conversion en lettres
> > d'une partie du nombre
> > 'varnumD : pour stocker la partie dizaine d'un
> > nombre à 2 chiffres
> > 'varnumU : pour stocker la partie unité d'un
> > nombre à 2 chiffres
> > 'résultat : pour stocker les résultats
> > intermédiaires des différentes étapes
> > '
> > Static chiffre(1 To 19) '*** tableau contenant le
> > nom des 16 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"
> > Static dizaine(1 To 9) '*** tableau contenant les
> > noms des dizaines
> > 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
> > du "de" pour million
> > 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 le cas "zéro franc"
> > '
> > '*** 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
> > additionne 0,5
> > '*** 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(résultat) - 1)
> > '
> > '*** renvoie du résultat de la fonction et fin de
> > la fonction
> > NBenLettres = résultat
> > Exit Function
> > '
> > centaine_dizaine: '*** Sous-programme de
> > conversion en lettres
> > '*** 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 lettres
> >
> > 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 + 10
> > If varnumU <> 0 Then varlet = varlet +
> > chiffre(varnumU)
> > End If
> > '
> > '*** Suppression des espaces à gauche et retour
> > varlet = RTrim(varlet)
> > Return
> > End Function
> >
> >
> > a+
> > Jean-Pol DAVID
> > mailto:
> > www.peintures-david.com
> > ICQ 28394733
> > --
> > Quis ? Quid ? Ubi ? Quibus auxiliis ? Cur ?
> > Quomodo ? Quando ?
> >
> > "Patrice Henrio"
> > a écrit dans
> > le message news:
> > #0siL3$
> > > En fait il s'agirait d'une fonction
> > convertissant un nombre entier en
> > > lettres. cela n'existe pas tout fait même si de
> > nombreux programmeurs ont
> > > déjà réalisé cela. En tout cas ce n'est pas
> > simple, L'exemple que tu cites
> > > en est un exemple car il comporte deux fautes.
> > Une faute de frappe t'as fait
> > > écrire "Mille" avec un "S". Mais surtout, le mot
> > cent est invariable dans un
> > > nombre sauf s'il n'est pas suivi d'autres
> > chiffres : ainsi on écrit "Mille
> > > neuf cents" mais "Mille neuf cent soixante
> > huit".
> > > De même on écrit "quatre-vingts" mais
> > "quatre-vingt un".
> > > Par contre "mille" est toujours invariable en
> > tant que nombre.
> > >
> > > "Toure Mamadou" a écrit
> > dans le message de
> > > news:e2f501c3bbf8$8bac6340$
> > > Bonjour !
> > > J'aimerai savoir s'il existe une fonction me
> > permettant
> > > de convertir une date écrite en chiffres en une
> > date
> > > écrite en lettre.
> > > Ex:1968(Milles neuf cents soixante huit
> > >
> > >
> >
>
>




Avatar
Jean-Marc
"Patrice Henrio" a écrit dans le
message de news:
Sans parler des particularités dont je parlais ci-dessus : "quatre-vingts"
et "quatre-vingt trois"



Oui! Donc, programmtion plutôt triviale en soi, mais prévoir d'avoir son
Grevisse à portée de main :-)



"Jean-Marc" a écrit dans le message de
news:3fd2333a$0$5476$
> "ng" a écrit dans le message de
> news:
> > dizaine(7) = "septante"
> > dizaine(9) = "nonante"
> > Mouarf :-)
>
> Et oui, cette conversion est beaucoup plus simple à écire pour nos amis
> belges, suisses et quebecois.
> Le problème est plus compliqué en français tel qu'on le parle en france:
>
> septante-six => soixante seize
> septante-sept => soixante dix sept
>
> plus compliqué à écrire proprement, mais rien de bien méchant :-)
>
> >
> > "David" a écrit dans le message de news:
> > #
> > >
> > > Bonjour
> > >
> > > 1968 n'évoque pas pour moi
> > > une date mais un nombre;
> > > voici donc un sous-programme
> > > pour convertir un nombre en lettre.
> > > (avec euro et centimes)
> > >
> > >
> > > Function NBenLettres(nb)
> > > '
> > > Dim varnum, varnumD, varnumU, varlet ', résultat
> > > '
> > > 'varnum : pour stocker les parties du nombre que
> > > l'on va découper
> > > 'varlet : pour stocker la conversion en lettres
> > > d'une partie du nombre
> > > 'varnumD : pour stocker la partie dizaine d'un
> > > nombre à 2 chiffres
> > > 'varnumU : pour stocker la partie unité d'un
> > > nombre à 2 chiffres
> > > 'résultat : pour stocker les résultats
> > > intermédiaires des différentes étapes
> > > '
> > > Static chiffre(1 To 19) '*** tableau contenant le
> > > nom des 16 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"
> > > Static dizaine(1 To 9) '*** tableau contenant les
> > > noms des dizaines
> > > 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
> > > du "de" pour million
> > > 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 le cas "zéro franc"
> > > '
> > > '*** 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
> > > additionne 0,5
> > > '*** 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(résultat) - 1)
> > > '
> > > '*** renvoie du résultat de la fonction et fin de
> > > la fonction
> > > NBenLettres = résultat
> > > Exit Function
> > > '
> > > centaine_dizaine: '*** Sous-programme de
> > > conversion en lettres
> > > '*** 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 lettres
> > >
> > > 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 + 10
> > > If varnumU <> 0 Then varlet = varlet +
> > > chiffre(varnumU)
> > > End If
> > > '
> > > '*** Suppression des espaces à gauche et retour
> > > varlet = RTrim(varlet)
> > > Return
> > > End Function
> > >
> > >
> > > a+
> > > Jean-Pol DAVID
> > > mailto:
> > > www.peintures-david.com
> > > ICQ 28394733
> > > --
> > > Quis ? Quid ? Ubi ? Quibus auxiliis ? Cur ?
> > > Quomodo ? Quando ?
> > >
> > > "Patrice Henrio"
> > > a écrit dans
> > > le message news:
> > > #0siL3$
> > > > En fait il s'agirait d'une fonction
> > > convertissant un nombre entier en
> > > > lettres. cela n'existe pas tout fait même si de
> > > nombreux programmeurs ont
> > > > déjà réalisé cela. En tout cas ce n'est pas
> > > simple, L'exemple que tu cites
> > > > en est un exemple car il comporte deux fautes.
> > > Une faute de frappe t'as fait
> > > > écrire "Mille" avec un "S". Mais surtout, le mot
> > > cent est invariable dans un
> > > > nombre sauf s'il n'est pas suivi d'autres
> > > chiffres : ainsi on écrit "Mille
> > > > neuf cents" mais "Mille neuf cent soixante
> > > huit".
> > > > De même on écrit "quatre-vingts" mais
> > > "quatre-vingt un".
> > > > Par contre "mille" est toujours invariable en
> > > tant que nombre.
> > > >
> > > > "Toure Mamadou" a écrit
> > > dans le message de
> > > > news:e2f501c3bbf8$8bac6340$
> > > > Bonjour !
> > > > J'aimerai savoir s'il existe une fonction me
> > > permettant
> > > > de convertir une date écrite en chiffres en une
> > > date
> > > > écrite en lettre.
> > > > Ex:1968(Milles neuf cents soixante huit
> > > >
> > > >
> > >
> >
> >
>
>




Avatar
Jean-Marc
"Jean-Marc" a écrit dans le message de
news:3fd3587b$0$3249$
"Patrice Henrio" a écrit dans le
message de news:
> Sans parler des particularités dont je parlais ci-dessus :


"quatre-vingts"
> et "quatre-vingt trois"

Oui! Donc, programmtion plutôt triviale en soi, mais prévoir d'avoir son
Grevisse à portée de main :-)



Et tant qu'on y est, le code pour faire ça, avec commentaires et tout.
http://www.vbfrance.com/code.aspx?IDw0

URL obtenue en 2 secondes d'un simple Google "conversion nombre lettres" ,
2eme lien ...




>
> "Jean-Marc" a écrit dans le message de
> news:3fd2333a$0$5476$
> > "ng" a écrit dans le message de
> > news:
> > > dizaine(7) = "septante"
> > > dizaine(9) = "nonante"
> > > Mouarf :-)
> >
> > Et oui, cette conversion est beaucoup plus simple à écire pour nos


amis
> > belges, suisses et quebecois.
> > Le problème est plus compliqué en français tel qu'on le parle en


france:
> >
> > septante-six => soixante seize
> > septante-sept => soixante dix sept
> >
> > plus compliqué à écrire proprement, mais rien de bien méchant :-)
> >
> > >
> > > "David" a écrit dans le message de news:
> > > #
> > > >
> > > > Bonjour
> > > >
> > > > 1968 n'évoque pas pour moi
> > > > une date mais un nombre;
> > > > voici donc un sous-programme
> > > > pour convertir un nombre en lettre.
> > > > (avec euro et centimes)
> > > >
> > > >
> > > > Function NBenLettres(nb)
> > > > '
> > > > Dim varnum, varnumD, varnumU, varlet ', résultat
> > > > '
> > > > 'varnum : pour stocker les parties du nombre que
> > > > l'on va découper
> > > > 'varlet : pour stocker la conversion en lettres
> > > > d'une partie du nombre
> > > > 'varnumD : pour stocker la partie dizaine d'un
> > > > nombre à 2 chiffres
> > > > 'varnumU : pour stocker la partie unité d'un
> > > > nombre à 2 chiffres
> > > > 'résultat : pour stocker les résultats
> > > > intermédiaires des différentes étapes
> > > > '
> > > > Static chiffre(1 To 19) '*** tableau contenant le
> > > > nom des 16 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"
> > > > Static dizaine(1 To 9) '*** tableau contenant les
> > > > noms des dizaines
> > > > 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
> > > > du "de" pour million
> > > > 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 le cas "zéro franc"
> > > > '
> > > > '*** 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
> > > > additionne 0,5
> > > > '*** 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(résultat) - 1)
> > > > '
> > > > '*** renvoie du résultat de la fonction et fin de
> > > > la fonction
> > > > NBenLettres = résultat
> > > > Exit Function
> > > > '
> > > > centaine_dizaine: '*** Sous-programme de
> > > > conversion en lettres
> > > > '*** 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 lettres
> > > >
> > > > 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 + 10
> > > > If varnumU <> 0 Then varlet = varlet +
> > > > chiffre(varnumU)
> > > > End If
> > > > '
> > > > '*** Suppression des espaces à gauche et retour
> > > > varlet = RTrim(varlet)
> > > > Return
> > > > End Function
> > > >
> > > >
> > > > a+
> > > > Jean-Pol DAVID
> > > > mailto:
> > > > www.peintures-david.com
> > > > ICQ 28394733
> > > > --
> > > > Quis ? Quid ? Ubi ? Quibus auxiliis ? Cur ?
> > > > Quomodo ? Quando ?
> > > >
> > > > "Patrice Henrio"
> > > > a écrit dans
> > > > le message news:
> > > > #0siL3$
> > > > > En fait il s'agirait d'une fonction
> > > > convertissant un nombre entier en
> > > > > lettres. cela n'existe pas tout fait même si de
> > > > nombreux programmeurs ont
> > > > > déjà réalisé cela. En tout cas ce n'est pas
> > > > simple, L'exemple que tu cites
> > > > > en est un exemple car il comporte deux fautes.
> > > > Une faute de frappe t'as fait
> > > > > écrire "Mille" avec un "S". Mais surtout, le mot
> > > > cent est invariable dans un
> > > > > nombre sauf s'il n'est pas suivi d'autres
> > > > chiffres : ainsi on écrit "Mille
> > > > > neuf cents" mais "Mille neuf cent soixante
> > > > huit".
> > > > > De même on écrit "quatre-vingts" mais
> > > > "quatre-vingt un".
> > > > > Par contre "mille" est toujours invariable en
> > > > tant que nombre.
> > > > >
> > > > > "Toure Mamadou" a écrit
> > > > dans le message de
> > > > > news:e2f501c3bbf8$8bac6340$
> > > > > Bonjour !
> > > > > J'aimerai savoir s'il existe une fonction me
> > > > permettant
> > > > > de convertir une date écrite en chiffres en une
> > > > date
> > > > > écrite en lettre.
> > > > > Ex:1968(Milles neuf cents soixante huit
> > > > >
> > > > >
> > > >
> > >
> > >
> >
> >
>
>




1 2