comment ajouter le mot ET a la fonction NBLETTRE ?

madou2003

XLDnaute Nouveau
ma question est :

90,50 euro ça donne: Quatre-Vingt-Dix Euros Cinquante Centimes

alors que ce que je veux obtenir est ça: Quatre-Vingt-Dix Euros ET Cinquante Centimes.

en PJ le code source de la formule.

Merci pour votre aide.
 

Pièces jointes

  • nblettre.txt
    9.1 KB · Affichages: 424
Dernière édition:

Washson

XLDnaute Nouveau
Re : comment ajouter le mot ET a la fonction NBLETTRE ?

Pour les devises Euro, dollar et dinar
Modification la partie de devise comme suivant :

Select Case Devise
Case 0
If byDec > 0 Then strDev = " virgule "
Case 1
strDev = " Euro"
If dblEnt >= 1000000 And Right(dblEnt, 6) = "000000" Then strDev = " d'Euro"
If dblEnt > 1 And Devise <> 0 Then strDev = strDev & "s"
strDev = strDev & " "
If byDec > 0 Then strDev = strDev & "et" & " "
strCentimes = strCentimes & " Centime"
If byDec > 1 Then strCentimes = strCentimes & "s"
Case 2
strDev = " Dollar"
If dblEnt > 1 And Devise <> 0 Then strDev = strDev & "s"
strDev = strDev & " "
If byDec > 0 Then strDev = strDev & "et" & " "
strCentimes = strCentimes & " Cent"
Case 3
strDev = " Dinar"
If dblEnt >= 1000000 And Right(dblEnt, 6) = "000000" Then strDev = " de Dinar"
If dblEnt > 1 And Devise <> 0 Then strDev = strDev & "s"
strDev = strDev & " "
If byDec > 0 Then strDev = strDev & "et" & " "
strCentimes = strCentimes & " Centime"
If byDec > 1 Then strCentimes = strCentimes & "s"
End Select
If dblEnt = 0 Then
ConvNumberLetter = "zéro " & strDev
Else
ConvNumberLetter = ConvNumEnt(CDbl(dblEnt), Langue) & strDev
End If
If byDec = 0 Then
If Devise <> 0 Then
If ZeroCent = 1 Then ConvNumberLetter = ConvNumberLetter & "zéro Cent"
End If
Else
If Devise = 0 Then
ConvNumberLetter = ConvNumberLetter & _
ConvNumDizaine(byDec, Langue, True) & strCentimes
Else
ConvNumberLetter = ConvNumberLetter & _
ConvNumDizaine(byDec, Langue, False) & strCentimes
End If
End If
ConvNumberLetter = Replace(ConvNumberLetter, " ", " ")
If Left(ConvNumberLetter, 1) = " " Then ConvNumberLetter = _
Right(ConvNumberLetter, Len(ConvNumberLetter) - 1)
If Right(ConvNumberLetter, 1) = " " Then ConvNumberLetter = _
Left(ConvNumberLetter, Len(ConvNumberLetter) - 1)
 
Dernière modification par un modérateur:

grisan29

XLDnaute Accro
Re : comment ajouter le mot ET a la fonction NBLETTRE ?

bonjour washon, MichD et le forum

dans la chaine suivante où puis mettre le "et" entre les euros et les centimes pour l'instant je m'en contentai mais a la lecture de ce post je crois qu'il y a possibilité
Code:
Function chiffrelettre(S)
'trouvé sur exelabo
  Dim A As Variant, gros As Variant
  A = Array("", "un", "deux", "trois", "quatre", "cinq", "six", "sept", _
            "huit", "neuf", "dix", "onze", "douze", "treize", "quatorze", "quinze", "seize", "dix sept", _
            "dix huit", "dix neuf", "vingt", "vingt et un", "vingt deux", "vingt trois", "vingt quatre", _
            "vingt cinq", "vingt six", "vingt sept", "vingt huit", "vingt neuf", "trente", "trente et un", _
            "trente deux", "trente trois", "trente quatre", "trente cinq", "trente six", "trente sept", _
            "trente huit", "trente neuf", "quarante", "quarante et un", "quarante deux", "quarante trois", _
            "quarante quatre", "quarante cinq", "quarante six", "quarante sept", "quarante huit", _
            "quarante neuf", "cinquante", "cinquante et un", "cinquante deux", "cinquante trois", _
            "cinquante quatre", "cinquante cinq", "cinquante six", "cinquante sept", "cinquante huit", _
            "cinquante neuf", "soixante", "soixante et un", "soixante deux", "soixante trois", _
            "soixante quatre", "soixante cinq", "soixante six", "soixante sept", "soixante huit", _
            "soixante neuf", "soixante dix", "soixante et onze", "soixante douze", "soixante treize", _
            "soixante quatorze", "soixante quinze", "soixante seize", "soixante dix sept", _
            "soixante dix huit", "soixante dix neuf", "quatre-vingts", "quatre-vingt un", _
            "quatre-vingt deux", "quatre-vingt trois", "quatre-vingt quatre", "quatre-vingt cinq", _
            "quatre-vingt six", "quatre-vingt sept", "quatre-vingt huit", "quatre-vingt neuf", _
            "quatre-vingt dix", "quatre-vingt onze", "quatre-vingt douze", "quatre-vingt treize", _
            "quatre-vingt quatorze", "quatre-vingt quinze", "quatre-vingt seize", "quatre-vingt dix sept", _
            "quatre-vingt dix huit", "quatre-vingt dix neuf")
  gros = Array("", "billions", "milliards", "millions", "mille", "EUROS", "billion", _
               "milliard", "million", "mille", "EURO")
  sp = Space(1)
  chaine = "00000000000000"
  centime = S * 100 - (Int(S) * 100)
  S = Str(Int(S)): Lg = Len(S) - 1: S = Right(S, Lg): Lg = Len(S)
  If Lg < 15 Then chaine = Mid(chaine, 1, (15 - Lg)) Else chaine = ""
  S = chaine + S
  'billions au centaines
  gp = 1
  For K = 1 To 5
    X = Mid(S, gp, 1): C = A(Val(X))
    X = Mid(S, gp + 1, 2): D = A(Val(X))
    If K = 5 Then
      If t2 <> "" And C & D = "" Then mydz = "Euros" & sp: GoTo Fin
      If T <> "" And C = "" And D = "un" Then mydz = "un euros" & sp: GoTo Fin
      If T <> "" And t2 = "" And C & D = "" Then mydz = "d'Euros" & sp: GoTo Fin
      If T & C & D = "" Then myct = "": mydz = "": GoTo Fin
    End If
    If C & D = "" Then GoTo Fin
    If D = "" And C <> "" And C <> "un" Then mydz = C & sp & "cents " & gros(K) & sp: GoTo Fin
    If D = "" And C = "un" Then mydz = "cent " & gros(K) & sp: GoTo Fin
    If D = "un" And C = "" Then myct = IIF(K = 4, gros(K) & sp, "un " & gros(K + 5) & sp): GoTo Fin
    If D <> "" And C = "un" Then mydz = "cent" & sp
    If D <> "" And C <> "" And C <> "un" Then mydz = C & sp & "cent" + sp
    myct = D & sp & gros(K) & sp
Fin:
    t2 = mydz & myct
    T = T & mydz & myct
    mydz = "": myct = ""
    gp = gp + 3
  Next
  D = A(centime)
  If T <> "" Then myct = IIF(centime = 1, " centime", " CENTS")
  If T = "" Then myct = IIF(centime = 1, " centime d'Euro", " centimes d'Euro")
  If centime = 0 Then D = "": myct = ""
  chiffrelettre = T & D & myct
End Function
 

grisan29

XLDnaute Accro
Re : comment ajouter le mot ET a la fonction NBLETTRE ?

bonjour a tous
a a relecture de mon post je vois que la dernière ligne avant end function pourrai le faire alors
Code:
chiffrelettre = T & "et" & " " & D & myct

très bien quand le chiffre a des cents mais sans il écrit "et" après euros
 

MichD

XLDnaute Impliqué
Re : comment ajouter le mot ET a la fonction NBLETTRE ?

Modifie la dernière ligne de la fonction comme ceci :

La ligne de code actuel : chiffrelettre = T & D & myct

tu remplaces par ceci :

chiffrelettre = T & IIf(d = "", "", " et " & d & myct)

MichD
 

Discussions similaires

Statistiques des forums

Discussions
312 321
Messages
2 087 266
Membres
103 501
dernier inscrit
talebafia