je suis nouveau
je sais que c'est une question qui a eteabordee maintes fois
mais j'ai un petit probleme comme tous les debutants dans visualbasic:
dans l'application Convertnumletter comment je peux changer la monnaie et le nombre de chiffres apres la virgule de 2 a trois
Je suis en Tunisie la monnaie c'est le DINAR et subdivise en 1000 millimes
S'il s'agit de donner à des cellules d'une feuille un format de nombre avec 3 décimales et l'abrégé de la monnaie tunisienne, tu peux, après avoir sélectionné les cellules concernées, utiliser le menu de Excel "Format / Cellule", onglet "Nombre". Choisis la catégorie "Monétaire", définis à 3 le nombre de décimales et choisis "TND" dans la liste des symboles, puis cliques sur "OK"
S'il s'agit de définir par une macro ce format de nombre pour toute la feuille active , tu peux écrire :
Code:
Sub FormatNombres()
ActiveSheet.Cells.NumberFormat = "#,##0.000"" TND"";-#,##0.000"" TND"";0.000"" TND"""
End Sub
bonjour
il s'agit de modifier la macro "Convertnumletter" afin qu'elle prenne en en cosideration 3 chiffres apres la vrgules lors de la conversion en lettres
ex: 1.234 en un dinars deux cent trente quatre millimes
et non en "un dinars vingt trois millimes comme actuellement"
et la je bloque
merci
Merci du retour,
Je te joint un nouveau fichier car j'ai trouvé une erreur de conjugaison
dans les millimes j'avais oublié des conjugaisons ..exemple "deux cents trois" alors qu'il faut "deux cent trois" ..."cent"prend un S que si rien derrière
et j'avais laissé des "centimes" au lieu "millimes"
Voici
Bruno
Je vois que j'arrive un peu tard, mais puisque je l'ai fait au titre de la "gymnastique intellectuelle", j'envoie le fichier joint, dans lequel j'avoue ne pas avoir vérifié s'il respecte les conventions orthographiques (pluriel ou non, et trait d'union ou non ... ces règles changent tellement en fonction des sources que l'on consulte ...).
Pour l'adapter à des cas précis, il suffit de modifier les valeurs des constantes dans la fonction "NombreEnLettres", valeurs qui sont les suivantes dans mon fichier :
Code:
Const NbDecimales As Byte = 2
Rem constantes au singulier
Const NomMilliardSingulier As String = "milliard"
Const NomMillionSingulier As String = "million"
Const NomMillierSingulier As String = "mille"
Const NomMonnaieSingulier As String = "Euro"
Const NomFractionSingulier As String = "Cent"
Rem constantes au pluriel
Const NomMilliardPluriel As String = "milliards"
Const NomMillionPluriel As String = "millions"
Const NomMillierPluriel As String = "mille"
Const NomMonnaiePluriel As String = "Euros"
Const NomFractionPluriel As String = "Cents"
Rem Constantes de débit / crédit
Const NomDebit As String = "DEBIT de : "
Const NomCredit As String = "CREDIT de : "
Dans le cas de slazi69, je suggère d'écrire :
Code:
Const NbDecimales As Byte = 3
Const NomMonnaieSingulier As String = "Dinard Tunisien"
Const NomFractionSingulier As String = "Millième"
Const NomMonnaiePluriel As String = "Dinards Tunisiens"
Const NomFractionPluriel As String = "Millièmes"
Et pour corriger ou modifier l'écriture en lettre des nombres, il suffit de corriger ce qui doit l'être dans la macro "Initialiser_Tables_des_Nombres"
Merci à tous de me signaler les bugs éventuels et les améliorations souhaitables, pour que mes méninges ne s'endorment pas dans la béatitude du "je crois que c'est bon, mon truc" ...
(sans aller jusqu'à respecter les "recommandations de 1990" que je trouve un peu lourdes en traits-d'union ...) et que l'on peut facilement adapter à ses propres besoins.
Dans le cas de slazi69, il suffit d'apporter ces modifications suivantes :
- en tête du module :
Code:
Const NbDecimales As Byte = 3
- dans la macro "Initialiser_Table_des_Noms" :
Code:
TableNomsSingulier(0) = "Dinard Tunisien " ' Nom de la monnaie OU du séparateur de décimales
TableNomsSingulier(1) = "millième " ' nom de la partie fractionnaire
TableNomsPluriel(0) = "Dinards Tunisiens " ' Nom de la monnaie OU du séparateur de décimales
TableNomsPluriel(1) = "millièmes " ' nom de la partie fractionnaire
Bonne journée.
PS ...
Question : pourquoi donc refaire ce qui existe déjà ?
Réponse : pour entretenir les méninges et retarder l'âge de la sénilité...
Et je reste preneur des remarques et critiques.
Bonsoir tout le monde
j'ai un petit problème :
dans l'application Convertnumletter comment je peux récupérer les chiffres après la virgule (3 chiffres après la virgule sans les convertir en lettres)???
exemple:
3456,543 => trois mille quatre cent cinquante six dinar 543 millimes
merci a tous
Salut,
il y a le Morefunc a telecharger c'est gratis.
il contient une fonction NBTEXTE qui converti les chiffres en textes en plusieurs langues et en prenant en charge les unites en cas de singulier ou pluriel.
@ + +
Rachid