Transformer en lettres des montants en ? et en kg exprimés en chiffres.
3 réponses
Daniel
Bonjour,
Je cherche une macro qui recopierait un montant exprimé en euros sous le
format 1.234,56 ? et le transformerait en toutes lettres. Résulat recherché
: Mille deux cent trente quatre euros et cinquante six cents (sans les
fautes d'accord et de trait d'union éventuellement manquants :-).
Je cherche, dans le même style, la manière de faire la même chose avec des
poids exprimés comme ceci : 1.234,560 kg. Résultat recherché : Mille deux
cent trentre quatre kilos et cinq cent soixante grammes (idem :-)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
LargoWinch
Bonjour,
Je cherche une macro qui recopierait un montant exprimé en euros sous le format 1.234,56 ? et le transformerait en toutes lettres. Résulat recherché : Mille deux cent trente quatre euros et cinquante six cents (sans les fautes d'accord et de trait d'union éventuellement manquants :-).
Je cherche, dans le même style, la manière de faire la même chose avec des poids exprimés comme ceci : 1.234,560 kg. Résultat recherché : Mille deux cent trentre quatre kilos et cinq cent soixante grammes (idem :-)
Merci d'avance pour vos conseils éclairés.
Daniel
Google, notre ami, a répondu à la question http://www.google.fr/search?sourceid=navclient&hl=fr&ie=UTF-8&rls=GGLD,GGLD:2005-20,GGLD:fr&q=macro+excel+conversion+chiffre+lettre
Ajouté par Armojax (19/04/2005 à 07:59 GMT+2) Bonjour,
Je propose également la fonction ci-dessous : Elle admet deux paramètres supplémentaires : - choix de la monnaie (euro par défaut) - résultat en majuscules ou minuscules (majuscules par défaut)
Si A1 contient 23.56, CHIFLETR(A1) : VINGT-TROIS EUROS ET CINQUANTE-SIX CENTIMES CHIFLETR(A1;"dollar") : VINGT-TROIS DOLLARS ET CINQUANTE-SIX CENTIMES CHIFLETR(A1;;FAUX) : vingt-trois euros et cinquante-six centimes
Voici le code : Function CHIFLETR(Nombre, Optional Monnaie As String = "euro", Optional Maju As Boolean = True)
' CETTE FONCTION TRADUIT EN LETTRES UN NOMBRE POSITIF INFERIEUR ' AU MILLIARD, AVEC DEUX DECIMALES
' Elle fait appel à la macro "Codage" ci-dessous, ' qui en est indissociable
Dim TrCent As Boolean Dim CenTouRon As Boolean
Dim Entiers As Long Dim Centimes As Long
Dim TrUnités As Integer Dim TrMilles As Integer Dim TrMlions As Integer
Dim QuUnités As Long Dim QuMilles As Long Dim QuMlions As Long
Dim Lib As String
If Nombre > 999999999.99 Then CHIFLETR = "" Exit Function End If
If TrMlions <> 0 Then Call Codage(TrMlions, Lib, CenTouRon, False) If TrMlions = 1 Then Lib = Lib & "million " Else Lib = Lib & "millions " End If End If
If TrMilles <> 0 Then If TrMilles <> 1 Then Call Codage(TrMilles, Lib, CenTouRon, False) End If Lib = Lib & "mille " End If
If TrUnités <> 0 Then Call Codage(TrUnités, Lib, CenTouRon, True) End If
If Entiers >= 2 Then Lib = Lib & Monnaie & "s " ElseIf Entiers >= 1 Then Lib = Lib & Monnaie & " " Else Lib = "zéro " & Monnaie & " " End If If Centimes <> 0 Then Lib = Lib & "et " Call Codage(Centimes, Lib, CenTouRon, False) If Centimes = 1 Then Lib = Lib & "centime " Else Lib = Lib & "centimes " End If End If
CHIFLETR = Lib
If Maju Then CHIFLETR = UCase(CHIFLETR)
End Function Sub Codage(Tranche, Lib, CenTouRon, TrCent)
' CETTE MACRO EST INDISSOCIABLE DE LA FONCTION CHIFLETR ' CI-DESSUS, ET TRADUIT EN LETTRES UNE TRANCHE DE 3 CHIFFRES
Dim C As Byte, D As Byte, D1 As Byte, U As Byte Dim T00 As Variant Dim Tb0 As Variant, Tb1 As Variant, Tb2 As Variant, Tb3 As Variant, Tb4 As Variant Dim Tb5 As Variant, Tb6 As Variant, Tb7 As Variant, Tb8 As Variant, Tb9 As Variant
C = Tranche 100 If C <> 0 Then If TrCent And CenTouRon And C <> 1 Then Lib = Lib & T00(C) & "cents " Else Lib = Lib & T00(C) & "cent " End If End If D1 = Tranche Mod 100 D = D1 10 U = Tranche Mod 10
Select Case D Case 0: Lib = Lib & Tb0(U) Case 1: Lib = Lib & Tb1(U) Case 2: Lib = Lib & Tb2(U) Case 3: Lib = Lib & Tb3(U) Case 4: Lib = Lib & Tb4(U) Case 5: Lib = Lib & Tb5(U) Case 6: Lib = Lib & Tb6(U) Case 7: Lib = Lib & Tb7(U) Case 8: Lib = Lib & Tb8(U) Case 9: Lib = Lib & Tb9(U) End Select
End Sub
Pas testé mais les commentaires sont éloquents
Bonjour,
Je cherche une macro qui recopierait un montant exprimé en euros sous le
format 1.234,56 ? et le transformerait en toutes lettres. Résulat recherché
: Mille deux cent trente quatre euros et cinquante six cents (sans les
fautes d'accord et de trait d'union éventuellement manquants :-).
Je cherche, dans le même style, la manière de faire la même chose avec des
poids exprimés comme ceci : 1.234,560 kg. Résultat recherché : Mille deux
cent trentre quatre kilos et cinq cent soixante grammes (idem :-)
Merci d'avance pour vos conseils éclairés.
Daniel
Google, notre ami, a répondu à la question
http://www.google.fr/search?sourceid=navclient&hl=fr&ie=UTF-8&rls=GGLD,GGLD:2005-20,GGLD:fr&q=macro+excel+conversion+chiffre+lettre
Ajouté par Armojax (19/04/2005 à 07:59 GMT+2)
Bonjour,
Je propose également la fonction ci-dessous :
Elle admet deux paramètres supplémentaires :
- choix de la monnaie (euro par défaut)
- résultat en majuscules ou minuscules (majuscules par défaut)
Si A1 contient 23.56,
CHIFLETR(A1) : VINGT-TROIS EUROS ET CINQUANTE-SIX CENTIMES
CHIFLETR(A1;"dollar") : VINGT-TROIS DOLLARS ET CINQUANTE-SIX CENTIMES
CHIFLETR(A1;;FAUX) : vingt-trois euros et cinquante-six centimes
Voici le code :
Function CHIFLETR(Nombre, Optional Monnaie As String = "euro", Optional
Maju As Boolean = True)
' CETTE FONCTION TRADUIT EN LETTRES UN NOMBRE POSITIF INFERIEUR
' AU MILLIARD, AVEC DEUX DECIMALES
' Elle fait appel à la macro "Codage" ci-dessous,
' qui en est indissociable
Dim TrCent As Boolean
Dim CenTouRon As Boolean
Dim Entiers As Long
Dim Centimes As Long
Dim TrUnités As Integer
Dim TrMilles As Integer
Dim TrMlions As Integer
Dim QuUnités As Long
Dim QuMilles As Long
Dim QuMlions As Long
Dim Lib As String
If Nombre > 999999999.99 Then
CHIFLETR = ""
Exit Function
End If
If TrMlions <> 0 Then
Call Codage(TrMlions, Lib, CenTouRon, False)
If TrMlions = 1 Then
Lib = Lib & "million "
Else
Lib = Lib & "millions "
End If
End If
If TrMilles <> 0 Then
If TrMilles <> 1 Then
Call Codage(TrMilles, Lib, CenTouRon, False)
End If
Lib = Lib & "mille "
End If
If TrUnités <> 0 Then
Call Codage(TrUnités, Lib, CenTouRon, True)
End If
If Entiers >= 2 Then
Lib = Lib & Monnaie & "s "
ElseIf Entiers >= 1 Then
Lib = Lib & Monnaie & " "
Else
Lib = "zéro " & Monnaie & " "
End If
If Centimes <> 0 Then
Lib = Lib & "et "
Call Codage(Centimes, Lib, CenTouRon, False)
If Centimes = 1 Then
Lib = Lib & "centime "
Else
Lib = Lib & "centimes "
End If
End If
CHIFLETR = Lib
If Maju Then CHIFLETR = UCase(CHIFLETR)
End Function
Sub Codage(Tranche, Lib, CenTouRon, TrCent)
' CETTE MACRO EST INDISSOCIABLE DE LA FONCTION CHIFLETR
' CI-DESSUS, ET TRADUIT EN LETTRES UNE TRANCHE DE 3 CHIFFRES
Dim C As Byte, D As Byte, D1 As Byte, U As Byte
Dim T00 As Variant
Dim Tb0 As Variant, Tb1 As Variant, Tb2 As Variant, Tb3 As
Variant, Tb4 As Variant
Dim Tb5 As Variant, Tb6 As Variant, Tb7 As Variant, Tb8 As
Variant, Tb9 As Variant
C = Tranche 100
If C <> 0 Then
If TrCent And CenTouRon And C <> 1 Then
Lib = Lib & T00(C) & "cents "
Else
Lib = Lib & T00(C) & "cent "
End If
End If
D1 = Tranche Mod 100
D = D1 10
U = Tranche Mod 10
Select Case D
Case 0: Lib = Lib & Tb0(U)
Case 1: Lib = Lib & Tb1(U)
Case 2: Lib = Lib & Tb2(U)
Case 3: Lib = Lib & Tb3(U)
Case 4: Lib = Lib & Tb4(U)
Case 5: Lib = Lib & Tb5(U)
Case 6: Lib = Lib & Tb6(U)
Case 7: Lib = Lib & Tb7(U)
Case 8: Lib = Lib & Tb8(U)
Case 9: Lib = Lib & Tb9(U)
End Select
Je cherche une macro qui recopierait un montant exprimé en euros sous le format 1.234,56 ? et le transformerait en toutes lettres. Résulat recherché : Mille deux cent trente quatre euros et cinquante six cents (sans les fautes d'accord et de trait d'union éventuellement manquants :-).
Je cherche, dans le même style, la manière de faire la même chose avec des poids exprimés comme ceci : 1.234,560 kg. Résultat recherché : Mille deux cent trentre quatre kilos et cinq cent soixante grammes (idem :-)
Merci d'avance pour vos conseils éclairés.
Daniel
Google, notre ami, a répondu à la question http://www.google.fr/search?sourceid=navclient&hl=fr&ie=UTF-8&rls=GGLD,GGLD:2005-20,GGLD:fr&q=macro+excel+conversion+chiffre+lettre
Ajouté par Armojax (19/04/2005 à 07:59 GMT+2) Bonjour,
Je propose également la fonction ci-dessous : Elle admet deux paramètres supplémentaires : - choix de la monnaie (euro par défaut) - résultat en majuscules ou minuscules (majuscules par défaut)
Si A1 contient 23.56, CHIFLETR(A1) : VINGT-TROIS EUROS ET CINQUANTE-SIX CENTIMES CHIFLETR(A1;"dollar") : VINGT-TROIS DOLLARS ET CINQUANTE-SIX CENTIMES CHIFLETR(A1;;FAUX) : vingt-trois euros et cinquante-six centimes
Voici le code : Function CHIFLETR(Nombre, Optional Monnaie As String = "euro", Optional Maju As Boolean = True)
' CETTE FONCTION TRADUIT EN LETTRES UN NOMBRE POSITIF INFERIEUR ' AU MILLIARD, AVEC DEUX DECIMALES
' Elle fait appel à la macro "Codage" ci-dessous, ' qui en est indissociable
Dim TrCent As Boolean Dim CenTouRon As Boolean
Dim Entiers As Long Dim Centimes As Long
Dim TrUnités As Integer Dim TrMilles As Integer Dim TrMlions As Integer
Dim QuUnités As Long Dim QuMilles As Long Dim QuMlions As Long
Dim Lib As String
If Nombre > 999999999.99 Then CHIFLETR = "" Exit Function End If
If TrMlions <> 0 Then Call Codage(TrMlions, Lib, CenTouRon, False) If TrMlions = 1 Then Lib = Lib & "million " Else Lib = Lib & "millions " End If End If
If TrMilles <> 0 Then If TrMilles <> 1 Then Call Codage(TrMilles, Lib, CenTouRon, False) End If Lib = Lib & "mille " End If
If TrUnités <> 0 Then Call Codage(TrUnités, Lib, CenTouRon, True) End If
If Entiers >= 2 Then Lib = Lib & Monnaie & "s " ElseIf Entiers >= 1 Then Lib = Lib & Monnaie & " " Else Lib = "zéro " & Monnaie & " " End If If Centimes <> 0 Then Lib = Lib & "et " Call Codage(Centimes, Lib, CenTouRon, False) If Centimes = 1 Then Lib = Lib & "centime " Else Lib = Lib & "centimes " End If End If
CHIFLETR = Lib
If Maju Then CHIFLETR = UCase(CHIFLETR)
End Function Sub Codage(Tranche, Lib, CenTouRon, TrCent)
' CETTE MACRO EST INDISSOCIABLE DE LA FONCTION CHIFLETR ' CI-DESSUS, ET TRADUIT EN LETTRES UNE TRANCHE DE 3 CHIFFRES
Dim C As Byte, D As Byte, D1 As Byte, U As Byte Dim T00 As Variant Dim Tb0 As Variant, Tb1 As Variant, Tb2 As Variant, Tb3 As Variant, Tb4 As Variant Dim Tb5 As Variant, Tb6 As Variant, Tb7 As Variant, Tb8 As Variant, Tb9 As Variant
C = Tranche 100 If C <> 0 Then If TrCent And CenTouRon And C <> 1 Then Lib = Lib & T00(C) & "cents " Else Lib = Lib & T00(C) & "cent " End If End If D1 = Tranche Mod 100 D = D1 10 U = Tranche Mod 10
Select Case D Case 0: Lib = Lib & Tb0(U) Case 1: Lib = Lib & Tb1(U) Case 2: Lib = Lib & Tb2(U) Case 3: Lib = Lib & Tb3(U) Case 4: Lib = Lib & Tb4(U) Case 5: Lib = Lib & Tb5(U) Case 6: Lib = Lib & Tb6(U) Case 7: Lib = Lib & Tb7(U) Case 8: Lib = Lib & Tb8(U) Case 9: Lib = Lib & Tb9(U) End Select
End Sub
Pas testé mais les commentaires sont éloquents
Youky
Voir aussi ici http://www.excelabo.net/moteurs/compteclic.php?nom=bj-chiffres-en-lettres c'est simple et en suis l'auteur Youky "Daniel" <*enlever ceci° a écrit dans le message de news: 45111cd7$0$32433$
Bonjour,
Je cherche une macro qui recopierait un montant exprimé en euros sous le format 1.234,56 ? et le transformerait en toutes lettres. Résulat recherché : Mille deux cent trente quatre euros et cinquante six cents (sans les fautes d'accord et de trait d'union éventuellement manquants :-).
Je cherche, dans le même style, la manière de faire la même chose avec des poids exprimés comme ceci : 1.234,560 kg. Résultat recherché : Mille deux cent trentre quatre kilos et cinq cent soixante grammes (idem :-)
Merci d'avance pour vos conseils éclairés.
Daniel
Voir aussi ici
http://www.excelabo.net/moteurs/compteclic.php?nom=bj-chiffres-en-lettres
c'est simple et en suis l'auteur
Youky
"Daniel" <*enlever ceci°daniel.schils@advalvas.be> a écrit dans le message
de news: 45111cd7$0$32433$ba620e4c@news.skynet.be...
Bonjour,
Je cherche une macro qui recopierait un montant exprimé en euros sous le
format 1.234,56 ? et le transformerait en toutes lettres. Résulat
recherché
: Mille deux cent trente quatre euros et cinquante six cents (sans les
fautes d'accord et de trait d'union éventuellement manquants :-).
Je cherche, dans le même style, la manière de faire la même chose avec des
poids exprimés comme ceci : 1.234,560 kg. Résultat recherché : Mille deux
cent trentre quatre kilos et cinq cent soixante grammes (idem :-)
Voir aussi ici http://www.excelabo.net/moteurs/compteclic.php?nom=bj-chiffres-en-lettres c'est simple et en suis l'auteur Youky "Daniel" <*enlever ceci° a écrit dans le message de news: 45111cd7$0$32433$
Bonjour,
Je cherche une macro qui recopierait un montant exprimé en euros sous le format 1.234,56 ? et le transformerait en toutes lettres. Résulat recherché : Mille deux cent trente quatre euros et cinquante six cents (sans les fautes d'accord et de trait d'union éventuellement manquants :-).
Je cherche, dans le même style, la manière de faire la même chose avec des poids exprimés comme ceci : 1.234,560 kg. Résultat recherché : Mille deux cent trentre quatre kilos et cinq cent soixante grammes (idem :-)
Merci d'avance pour vos conseils éclairés.
Daniel
LargoWinch
Voir aussi ici http://www.excelabo.net/moteurs/compteclic.php?nom=bj-chiffres-en-lettres c'est simple et en suis l'auteur Youky
C'est vrai que le code est ici beaucoup plus léger. Bien joué ;)
Voir aussi ici
http://www.excelabo.net/moteurs/compteclic.php?nom=bj-chiffres-en-lettres
c'est simple et en suis l'auteur
Youky
C'est vrai que le code est ici beaucoup plus léger. Bien joué ;)