Microsoft 365 nombre en lettres incomplet

phil66

XLDnaute Junior
Bonjour à tous,

J'ai récupéré une feuille avec laquelle une formule me traduit les nombres en lettres (et surtout au format "belge" ;) ).
Par contre il y a un souci dans la formule car si j'ai bien la partie "entier" qui s'affiche en lettres, les décimales restent
en chiffres!

Exemple : € 714,15 devient : sept cent quatuorze euros et 15 centimes...

Qu'est-ce qui coince ?

Je joins le fichier en question.

Merci d'avance,

Phil
 

Pièces jointes

  • NOMBRE EN LETTRES 2021.xlsm
    25.8 KB · Affichages: 21

vgendron

XLDnaute Barbatruc
Hello

dans la fonction personalisée, la partie décimale n'est pas traduite en lettres...

il suffit de modifier la fonction comme ca:
VB:
Function NumText(Nombre As Currency, Optional Unité As String, Optional no_chiffres As Integer, Optional SousUnité As String) As String
Dim PartieEntière As Currency, PartieDécimal As Currency
Dim TxtEntier As String, TxtDécimal As String
PartieEntière = Int(Nombre)
TxtEntier = NumTextEntier(PartieEntière)
If no_chiffres > 0 Then
    PartieDécimal = (Nombre - PartieEntière) * 10 ^ no_chiffres
    TxtDécimal = NumTextEntier(PartieDécimal)
    'TxtDécimal = Format(PartieDécimal, String(no_chiffres, "0"))
End If
NumText = TxtEntier & Unité & " " & TxtDécimal & " " & SousUnité
End Function
 

patricktoulon

XLDnaute Barbatruc
Bonjour
avec ma fonction
en A1 j'ai 714,15
en B1 je met =NbToLettresFSB(A1;"beuro")
demo.gif

 

phil66

XLDnaute Junior
Bonjour
avec ma fonction
en A1 j'ai 714,15
en B1 je met =NbToLettresFSB(A1;"beuro")
Regarde la pièce jointe 1175988
Bonjour Patrick,

Avec votre version, la "traduction" est erronée dès que l'on dépasse les centaines ( sur l'image en annexe j'ai modifié les 3 premières lignes de la feuille e pour exemple).

Ai-je loupé quelque chose ?

Merci d'avance

Phil
 

Pièces jointes

  • Erreur milliers.PNG
    Erreur milliers.PNG
    36.3 KB · Affichages: 69

phil66

XLDnaute Junior
Hello

dans la fonction personalisée, la partie décimale n'est pas traduite en lettres...

il suffit de modifier la fonction comme ca:
VB:
Function NumText(Nombre As Currency, Optional Unité As String, Optional no_chiffres As Integer, Optional SousUnité As String) As String
Dim PartieEntière As Currency, PartieDécimal As Currency
Dim TxtEntier As String, TxtDécimal As String
PartieEntière = Int(Nombre)
TxtEntier = NumTextEntier(PartieEntière)
If no_chiffres > 0 Then
    PartieDécimal = (Nombre - PartieEntière) * 10 ^ no_chiffres
    TxtDécimal = NumTextEntier(PartieDécimal)
    'TxtDécimal = Format(PartieDécimal, String(no_chiffres, "0"))
End If
NumText = TxtEntier & Unité & " " & TxtDécimal & " " & SousUnité
End Function
Bonjour Vgendron,

C'est parfait, ça marche !

Un grand merci :)

Phil
 

phil66

XLDnaute Junior
re
perso je me demande ce que vous faite avec mon fichier exemple
Regarde la pièce jointe 1176052
je redonne le fichier exemple au cas ou
Bonjour Patrick,

Désolé, mais même en prenant votre fichier exemple, sans rien modifier (je l'ai juste enregistré dans un dossier), j'ai des erreurs dès qu'on passe aux milliers (voir image).

Cordialement,

Philippe
 

Pièces jointes

  • Erreur fichier exemple.PNG
    Erreur fichier exemple.PNG
    35.7 KB · Affichages: 33

Phil69970

XLDnaute Barbatruc

Statistiques des forums

Discussions
312 209
Messages
2 086 259
Membres
103 167
dernier inscrit
miriame