rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

[VB6] Conversion chiffres-lettres

Posté par mannylikita, le samedi 25 octobre 2003 à 13:06:02
Comment peux-je convertir des chiffres(nombres) en lettres en VB6; en excel je fais ça avec morefun.dll
Compte sur votre collaboration

Ir. Manny LIKITA
Tél: (00243) 98248846
 Signaler ce message aux modérateurs

1


  • 4
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
agent dooger, le dimanche 26 octobre 2003 à 19:30:29
pourras tu étre plus claire, me dir exactement se que tu veux obtenir.
Par exemple si tu veux que le 0 devienne un a; le 1 devienne un b (c'est ça ?)

2


  • 3
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
mannylikita, le jeudi 30 octobre 2003 à 12:11:10
Bonjour,
Par la présente je vous vous remercie de votre sens de collaboration. en effet je cherche l'astuce en Visual-Basic pour convertir automatiquement un chiffre ou un nombre directement en lettres comme le fait Morefun en excel; par exemple 10.500 s'écrira dix mille cinq cents....65 s'ecrira soixante cinq.
Bonne comprehension et au plaisir de se retrouver

Ir. Manny LIKITA
Tél: (00243) 98248846
:(00243)812503297

3


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
patrick, le vendredi 5 décembre 2003 à 19:08:21
bonjour
je suis aussi interressé par la conversion chiffres lettres dans excel
qu'est-ce que morefun.dll et ou le trouver ??
merci de vos suggestions

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
FraKtaL, le samedi 6 décembre 2003 à 00:44:49
VB ne propose pas, bien sur, une fonction qui fasse ça automatiqument.

Il existe peut etre des composants activeX qui le fassent, l'equivalent de morefun.dll, mais j'en doute

La seule solution est, a mon avis, de creer son propre algorithme.

OK c pas facile...
mais pas impossible

Pour ceux qui sont motivés :
http://yann.coscoy.free.fr/nombre/info.html

trouvé en tapant
algorithme nombre en toutes lettres
dans google

et un truc qui plus parlant ecrit dans un langage proche du VB :
http://www.opl32.com/Trucs/String/NbEnTxt.htm

FraKtaL

5


  • 3
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
filaliabdou, le samedi 6 décembre 2003 à 22:44:21
Salut tout le monde,

en fait j'ai réalisé une fonction VB qui fait la conversion chiffres-lettres , je l'ai essayé et ça marche bien

si vous etes intéressés envoyer moi un E-mail et je vous l'envoi.
pas de copyright, vous pouvez l'utiliser et la modifier comme vous voulez

time is not money, time is life

6


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
mannylikita, le mardi 16 décembre 2003 à 16:36:35
Salut !

Merci pour votre assistance, voici mon adresse-email:
<<mannylikita@yahoo.fr>>


Ir. Manny LIKITA
Tél: (00243) 98248846

38


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 patrick, le samedi 19 mars 2005 à 15:54:02
Vous avez demandé à recevoir les réponses au message de mannylikita intitulé « [VB6] Conversion chiffres-lettres » datant du 25 octobre 2003 à 13h06. Ce message vient de recevoir la réponse suivante de sabri :

--------------------------------------------------

Public Function sommelettre(ByVal argument As Currency) As String
Dim entier As Double
Dim cts As Double

Dim resultat1 As String
Dim resultat2 As String

entier = Int(argument) ' Valeur entière
cts = (argument - entier) * 100 ' Valeur Centimes

resultat1 = somlet2(entier)
resultat2 = somlet2(cts)

If Trim(resultat1) <> "" Then
resultat1 = resultat1 & " Dinars "
End If
If Trim(resultat2) <> "" Then
resultat2 = resultat2 & " Cts"
End If
sommelettre = resultat1 & " et " & resultat2

End Function
'***********************************************************­**
' Fonction de conversion chiffres en lettres
'***********************************************************­**
Public Function somlet2(ByVal argument As Double) As String

Dim lettres As Variant
Dim unites As Variant
Dim dizaines As Variant
Dim centaines As Variant

Dim unite As Integer
Dim dix As Integer
Dim cent As Integer

Dim groupes As Variant
Dim chaine As String
Dim ng, nc As Integer
Dim i, j, k As Integer
Dim xx As String

chaine = Trim(Str(argument))
nc = Len(chaine) ' Nbre de chiffres


lettres = Array("", "mille", "million", "milliard", "billion")
unites = Array("", "un", "deux", "trois", "quatre", "cinq", "six", "sept", "huit", "neuf", "dix", "onze", "douze", "treize", "quatorze", "quinze", "seize", "dix sept", "dix huit", "dix neuf")
dizaines = Array("", "dix", "vingt", "trente", "quarante", "cinquante", "soixante", "soixante dix", "quatre vingt", "quatre vingt dix")
centaines = Array("", "cent", "deux cents", "trois cents", "quatre cents", "cinq cents", "six cents", "sept cents", "huit cents", "neuf cents")

If argument = 0 Then
somlet2 = ""
Else
If nc Mod 3 > 0 Then
ng = Int(nc / 3) + 1 ' Nbre de groupes
Else
ng = nc / 3
End If
ReDim groupes(ng - 1)
chaine = String(ng * 3 - nc, " ") & chaine
nc = Len(chaine)
j = 0
For i = nc To 1 Step -3
xx = Mid(chaine, i - 2, i)
groupes(j) = xx
j = j + 1
Next
chaine = ""
For j = 0 To UBound(groupes)
unite = Val(Mid(groupes(j), 3, 1))
dix = Val(Mid(groupes(j), 2, 1))
If dix = 1 Or dix = 7 Or dix = 9 Then
dix = dix - 1
unite = unite + 10
End If
cent = Val(Mid(groupes(j), 1, 1))
chaine = centaines(cent) & " " & dizaines(dix) & " " & unites(unite) & " " & lettres(j) & " " & chaine
Next
somlet2 = chaine
End If
End Function

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
djamel, le samedi 10 janvier 2004 à 20:15:47
Bonjour,

Bonne année avant tout, à mon tour de te dire que je suis intérésé par la macro, si tu veux bien sûr,
merci d'avance
mon mail est : djamel92@hotmail.com

18


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
Réda, le lundi 26 avril 2004 à 01:50:31
salut
si ça ne te dérange pas veuillez m'envoyer le code en vb6 qui fait la conversion de chiffres en lettres (79 -> soixante dix-neuf)
j'en ai besoin pour faire la conversion de montants en toutes lettres dans une application de stage

19


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Réda, le lundi 26 avril 2004 à 02:02:29
si ça ne te dérange pas veuillez m'envoyer ,SVP, le code en vb6 qui fait la conversion de chiffres en lettres (79 -> soixante dix-neuf)
j'en ai besoin pour faire la conversion de montants en toutes lettres dans une application de stage
mon e-mail est a.lleda@caramail.com
et merci

24


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
BEN AISSIA, le mercredi 4 août 2004 à 11:03:57
envoi moi un copie de la conversion chiffre en lettre avec details merci.

j'ai autre probleme signifie d'une application access(verifier avec un commentaire) vb le lien dans le menu vb pour appeler application access j'ai utilisé shell mais le probleme quand j'ai installation elle n'affiche pas cad à chaque inst. modifié le repertoir ou se trouve app mais je voudrais q'uelle se fait directement
lapplication se trouve dans un compte specifique pour ça :karim_ben2@yahoo.fr --------password:prince

25


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Jacky, le samedi 9 octobre 2004 à 11:59:35
Salut
je serais egalement interesser par ton script

avec tous mes remerciement

cordialement jacky

26


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Aurore, le mardi 19 octobre 2004 à 11:04:57
Je suis intéressée aussi par cette conversion! Ca fait lgtps que j'aimerais bien trouver la solution! Pouvez-vs me renvoyer la réponse svp: aurorenoel18@hotmail.com. Un grand merci!!

31


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
patrick, le mercredi 12 janvier 2005 à 10:23:34
suite à ta reponse,je te remercie de m'envoyer ton algo vb pour la conversion nombre en litteral à ruffierp@free.fr

32


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
l_amish, le jeudi 17 février 2005 à 17:47:34
Bonjour,

Ds un msg recent ( loll de 12/03)t tu dis
:"Salut tout le monde,

en fait j'ai réalisé une fonction VB qui fait la conversion chiffres-lettres , je l'ai essayé et ça marche bien

si vous etes intéressés envoyer moi un E-mail et je vous l'envoi.
pas de copyright, vous pouvez l'utiliser et la modifier comme vous voulez "

Est ce que c possible de me l'envoyer par mail??
Merci d 'avance c cool....

35


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
virginie, le vendredi 11 mars 2005 à 14:41:16
salut,

j'aimerais bien recevoir aussi la conversion de chiffres en lettres
peux-tu me l'envoyer svp ?
virginiehuot@wanadoo.fr

merci d'avance!!

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
cenalex, le mardi 16 décembre 2003 à 22:20:28
bonjour à tous
je serais aussi interresse par la macro vba convertir des chiffre en lettre car cela fais un moment que je tourne au tour et que je ne trouve pas
merci d'avance
voici mon e mail
jsalbert@hotmail.com
merci

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
glopgg, le vendredi 2 janvier 2004 à 13:44:58
bjr et bonne année

je suis aussi intérressé par cette fonction, si possible merci de me l' envoyer (pas en .exe car hotmail refuse ce type d'extension)

Par avance encore merci

glopgg@hotmail.com

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
nathdiscaz, le samedi 3 avril 2004 à 15:56:33
Bonjours, je cherche également un algorithme permettant de mettre un chiffre en toute lettre mais dans un autre langage que Visual basic.
mais si vous pouviez m'envoyer cette algorithme je n'aurais cas le modifier.
Voici mon adresse : nathdiscaz@wanadoo.fr

merci beaucoup.

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Albert ZOURE, le mardi 6 avril 2004 à 19:10:37
Bonjour,

Merci de m'aider à avoir une macro qui puisse transformer les chiffres en lettre (ex: 10 = dix).
Je vous en serai très reconnaissant.
Amicalement

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Manny LIKITA, le dimanche 11 avril 2004 à 09:18:16
Veuillez me communiquer votre adresse e-mail pour une suite favorable

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ilhame12, le dimanche 11 avril 2004 à 22:19:45
bonjour
je interesse par ce programme si vous voulez bien me l'envoyer SVP
ilham1211@yahoo.fr

merci

14


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ilhame12, le lundi 12 avril 2004 à 14:02:07
bonjour

je me suis tromper de mail mon mail est "ilham1211@caramail.com"
je m'exuse et j'attend votre reponse
merci.

15


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
fred, le lundi 12 avril 2004 à 14:51:23
salut a toi !
priere de m'envoyer aussi cette superbe fonction de conversion des chiffres en lettres
merci
mon e-mail : f_soliste@yahoo.com

16


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
bul, le lundi 12 avril 2004 à 15:58:07
j'avais trouvé ça, je ne sais plus où
pas complètement testé,
mais "simple"
.....
Il est au top pour la Belgique.
Mais le travail est déjà "mâché" pour la France
a+
Jean-Pol DAVID
www.peintures-david.com
ICQ 28394733

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) = "soixante-dix"
dizaine(8) = "quatre-vingt"
dizaine(9) = "quatre-vingt-dix"
'
'*** 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

dites moi si soucis.

36


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Amir Kasmi, le dimanche 13 mars 2005 à 18:42:53
Salut je voudrais que vous me donner ou et comment utliser ce code
Merci d'avance

17


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
véronique costellazione, le dimanche 25 avril 2004 à 12:49:00
saluti !
J'aimerai beaucoup recevoir cette superbe fonction de conversion des chiffres en lettres ex 1OO - Cent
merci

20


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
fred, le lundi 26 avril 2004 à 19:11:02
voila le code intégral de la founction tant recherchée :
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 Mille vingt-cinq Euros
'
Static chiffre(1 To 19) '*** tableau contenant le nom des 16 premiers Cents Euros
nombres en lettres
chiffre(1) = "un" Cents Euros et quinze centimes
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) = "soixante-dix"
dizaine(8) = "quatre-vingt"
dizaine(9) = "quatre-vingt-dix"
'
'*** 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

30