florianelle
Messages postés8Date d'inscriptionmercredi 1 novembre 2000StatutMembreDernière intervention20 avril 2007
-
6 déc. 2004 à 22:51
cs_santiago69
Messages postés91Date d'inscriptionjeudi 18 novembre 2004StatutMembreDernière intervention17 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
barley
Messages postés107Date d'inscriptionjeudi 28 janvier 2010StatutMembreDernière intervention28 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
florianelle
Messages postés8Date d'inscriptionmercredi 1 novembre 2000StatutMembreDernière intervention20 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
barley
Messages postés107Date d'inscriptionjeudi 28 janvier 2010StatutMembreDernière intervention28 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
cs_santiago69
Messages postés91Date d'inscriptionjeudi 18 novembre 2004StatutMembreDernière intervention17 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.