Un nombre en lettre mais anglais

florianelle Messages postés 8 Date d'inscription mercredi 1 novembre 2000 Statut Membre Dernière intervention 20 avril 2007 - 6 déc. 2004 à 22:51
cs_santiago69 Messages postés 91 Date d'inscription jeudi 18 novembre 2004 Statut Membre Dernière intervention 17 décembre 2008 - 27 août 2005 à 19:34
Bonsoir,

Avec tout les fortiches qu'il y a sur ce forum, je réitére ma demande, y aurait il quelqu'un qui sache dépanner une petite assistante ;)
Ben oui, je cherche une macro qui convertisse un nombre en lettres mais pas en français voila ou est le soucis. Il faut que je le convertiisse en anglais..............................

Si vous n'avez pas une solution tant pis merci quand même

8 réponses

valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 3
6 déc. 2004 à 23:18
du style:

entée = 10
sortie = ten
et ça pour tous les nombre?
____________________________________________________

Cordialement, Jean-Paul

Le Savoir n'a de valeur que s'il est partagé
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
7 déc. 2004 à 08:15
C'est même plus simple à faire en anglais qu'en français. Les règles sont moins tordues.
Tu veux celà pour quelle plage de nombres ?

Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
0
barley Messages postés 107 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 28 janvier 2010
7 déc. 2004 à 15:23
essaye ce petit bout de code, je l'ai pas testé complètement, c'est possible qu'il y ait quelques bug, dans ce cas, tiens moi au courant, je ferai les modifications...

il faut une form avec 2 textbox (1 et 2)
et 1 commandbutton (1)

Private Sub Command1_Click()
Text2 = ""
Dim nombreenvers, position, chiffreactuel, valeurtext, centmillemillion
position = 1
centmillemillion = ""
nombreenvers = StrReverse(Text1) 'inversion de la chaine de caracteres
Do While position <= Len(Text1) 'tant que l'on a pas fini de scruter tous les chiffres composant le nombre
chiffreactuel = Mid(nombreenvers, position, 1) 'du premier au dernier chiffre
If position <> 2 And position <> 5 Then 'sauf les dizaines et dizaines de milliers If Mid(nombreenvers, (position + 1), 1) <> 1 Or position 3 Or position 6 Then 'si le suivant n'est pas 1 sauf cas millier million
Select Case chiffreactuel 'chiffre actuel
Case 1
valeurtext = "one"
Case 2
valeurtext = "two"
Case 3
valeurtext = "three"
Case 4
valeurtext = "four"
Case 5
valeurtext = "five"
Case 6
valeurtext = "six"
Case 7
valeurtext = "seven"
Case 8
valeurtext = "eight"
Case 9
valeurtext = "nine"
End Select
Select Case position
Case 3
centmillemillion = " hundred"
Case 6
centmillemillion = " hundred"
Case 4
centmillemillion = " thousand"
Case 7
centmillemillion = " million"
End Select
valeurtext = valeurtext & centmillemillion
Else
Select Case chiffreactuel
Case 1
valeurtext = "eleven"
Case 2
valeurtext = "twelve"
Case 3
valeurtext = "thirteen"
Case 4
valeurtext = "fourteen"
Case 5
valeurtext = "fifteen"
Case 6
valeurtext = "sixteen"
Case 7
valeurtext = "seventeen"
Case 8
valeurtext = "eighteen"
Case 9
valeurtext = "nineteen"
Case 0
valeurtext = "ten"
End Select
Select Case position
Case 3
centmillemillion = " hundred"
Case 6
centmillemillion = " hundred"
Case 4
centmillemillion = " thousand"
Case 7
centmillemillion = " million"
End Select
valeurtext = valeurtext & centmillemillion
End If
Else
Select Case chiffreactuel
Case 2
valeurtext = "twenty"
Case 3
valeurtext = "thirty"
Case 4
valeurtext = "fourty"
Case 5
valeurtext = "fifty"
Case 6
valeurtext = "sixty"
Case 7
valeurtext = "seventy"
Case 8
valeurtext = "eighty"
Case 9
valeurtext = "ninety"
End Select
End If
position = position + 1
Text2 = valeurtext & " " & Text2
valeurtext = ""
Loop
End Sub
Private Sub form_load()
Text2 = ""
Text1 = ""
End Sub

puisque tu cherche une macro, il ne faut pas oublier de changer les Text1, Text2, Command1, form_load par Textbox1, Textbox2, Commandbutton1,Userform_load

J'espere que ca correspond a ce que tu cherchais...y a surement plus rapide mais ca semble marcher.
Bonne continuation
0
florianelle Messages postés 8 Date d'inscription mercredi 1 novembre 2000 Statut Membre Dernière intervention 20 avril 2007
7 déc. 2004 à 20:54
Barley,

J'ai essayé ta proposition mais je ne parviens pas à appliquer ta macro dans mon doc excel. D'autre part, je ne souhaite pas passer
par un bouton. En fait, je souhaite écrire dans une cellule mon chiffre et que dans une autre cellule il s'affiche en lettre. Je l'ai déjà fait avec une conversion en euros et ca marche.

Si tu peux me joindre un exemple appliqué dans un doc excel, ce n'est pas de refus.

merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
barley Messages postés 107 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 28 janvier 2010
8 déc. 2004 à 10:07
j'ai fait la petite conversion, je ne pouvais pas la faire avant car je ne savais pas que c'était pour excel.

pour le fonctionnement de cette petite macro, il faut écrire un nombre dans la case A1 d'un fichier excel, puis lancer la macro. (Macro1). le résultat sera écrit dans la case A2.
voilà, j'espère que ca t'aidera.

Sub Macro1()

Dim nombreenvers, position, chiffreactuel, valeurtext, centmillemillion
position = 1
centmillemillion = ""
nombreenvers = StrReverse(Range("A1").Value) 'inversion de la chaine de caracteres
Do While position <= Len(Range("A1").Value) 'tant que l'on a pas fini de scruter tous les chiffres composant le nombre
chiffreactuel = Mid(nombreenvers, position, 1) 'du premier au dernier chiffre
If position <> 2 And position <> 5 Then 'sauf les dizaines et dizaines de milliersIf Mid(nombreenvers, (position + 1), 1) <> 1 Or position 3 Or position 6 Then 'si le suivant n'est pas 1 sauf cas millier million
Select Case chiffreactuel 'chiffre actuel
Case 1
valeurtext = "one"
Case 2
valeurtext = "two"
Case 3
valeurtext = "three"
Case 4
valeurtext = "four"
Case 5
valeurtext = "five"
Case 6
valeurtext = "six"
Case 7
valeurtext = "seven"
Case 8
valeurtext = "eight"
Case 9
valeurtext = "nine"
End Select
Select Case position
Case 3
centmillemillion = " hundred"
Case 6
centmillemillion = " hundred"
Case 4
centmillemillion = " thousand"
Case 7
centmillemillion = " million"
End Select
valeurtext = valeurtext & centmillemillion
Else
Select Case chiffreactuel
Case 1
valeurtext = "eleven"
Case 2
valeurtext = "twelve"
Case 3
valeurtext = "thirteen"
Case 4
valeurtext = "fourteen"
Case 5
valeurtext = "fifteen"
Case 6
valeurtext = "sixteen"
Case 7
valeurtext = "seventeen"
Case 8
valeurtext = "eighteen"
Case 9
valeurtext = "nineteen"
Case 0
valeurtext = "ten"
End Select
Select Case position
Case 3
centmillemillion = " hundred"
Case 6
centmillemillion = " hundred"
Case 4
centmillemillion = " thousand"
Case 7
centmillemillion = " million"
End Select
valeurtext = valeurtext & centmillemillion
End If
Else
Select Case chiffreactuel
Case 2
valeurtext = "twenty"
Case 3
valeurtext = "thirty"
Case 4
valeurtext = "fourty"
Case 5
valeurtext = "fifty"
Case 6
valeurtext = "sixty"
Case 7
valeurtext = "seventy"
Case 8
valeurtext = "eighty"
Case 9
valeurtext = "ninety"
End Select
End If
position = position + 1
Range("A2").Value = valeurtext & " " & Range("A2").Value
valeurtext = ""
Loop

End Sub
0
barley Messages postés 107 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 28 janvier 2010
8 déc. 2004 à 10:12
oups, un petit bug, excuse moi, je viens de m'en appercevoir, sous sub macro(1), faut rajouter :

Range("A2").Value = ""
0
salu18 Messages postés 3 Date d'inscription mercredi 22 novembre 2000 Statut Membre Dernière intervention 23 juillet 2005
23 juil. 2005 à 12:10
j'est besoin de transfer chiffre en lettre sur access
merci d'avance
mon e'mail est : etresolo@yahoo.fr
0
cs_santiago69 Messages postés 91 Date d'inscription jeudi 18 novembre 2004 Statut Membre Dernière intervention 17 décembre 2008
27 août 2005 à 19:34
j'ai fait un module qui permet d'ecrire un nombre en toutes lettres et dans plusieurs langues ! je ne cherche qu'a l'ameliorer :
http://www.vbfrance.com/code.aspx?ID=33471

pour excel, il suffit d'importer le module et dans n'importe quelle cellule, ecrire :
=NUMBERTOWORDS(A1;[B1];[C1])
avec A1 qui contient le nombre
B1 (facultatif) qui contient l'unite (euros, patates, kilos...)
C1 (facultatif) qui contient l'unite decimal (cents, grammes...)

pour access, il suffit d'importer le module et d'utiliser a loisir :
=NumberToWords(Number, [MainUnit], [DecUnit])

il y a 10 types de personnes : ceux qui comprennent le binaire et ceux qui ne le comprennent pas.
0
Rejoignez-nous