Ecrire des nombres en lettre C#, VB.Net et VBA

Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 - 7 mars 2017 à 20:59
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 - 14 mars 2017 à 20:50
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/101858-ecrire-des-nombres-en-lettre-c-vb-net-et-vba

Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 656
14 mars 2017 à 20:50
J'ai retrouvé une vieille VirtualBox avec XP et Visual Studio 2008.
Il y n'a une ligne à changer.
Le String.Join de l'époque ne prenait pas de liste en paramètre, il faut donc changer la liste en tableau.

Return String.Join(" ", resultat)

devient
Return String.Join(" ", resultat.ToArray())


D'un autre coté, 2008 c'est obsolète même pour XP, VS2010 et la Framework 4.0 fonctionnent sur XP et tu n'aurais pas eu ce bug.
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 656
14 mars 2017 à 12:51
Bonjour
c'est possible que j'utilise quelque chose qui n'existait pas en Framework 3.
Mais sans préciser quelles sont les erreurs et ou elles apparaissent, je ne vais rien pouvoir y faire....
je travaille sur vb.net 2008 il me donne des erreur
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 656
Modifié par Whismeril le 9/03/2017 à 09:20
Merci, pour le bug, ça affectait aussi le code VB.Net
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 14
9 mars 2017 à 07:36
Commentaire inutile, oubli de vote de ma part...
Whismeril Messages postés 19026 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 avril 2024 656
8 mars 2017 à 18:27
Merci c'est corrigé.
J'avais zappé le bug du site.
Pour le 0, je me suis fait b***é sur un coup simple, je l'avais essayé en 2eme ou 3eme position, donc le tableau était initialisé....
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 14
Modifié par pijaku le 8/03/2017 à 10:15
Bonjour,

Attention, un bug du site sur les balises code supprime les \
=> lignes 76, 192 et 253 du code en VBA.

Sinon, très beau travail.

EDIT : En VBA toujours, si nombre = 0, une erreur va se produire ligne 49 :
ToLettres = jusqueSeize(0)

En effet, à cet endroit du code, jusqueSeize est vide. Il convient donc de placer la ligne 59 en début de fonction :
Public Function ToLettres(ByVal Nombre As Double, Optional ByVal LePays As Pays = Pays.France, Optional ByVal LaDevise As Devise = Devise.Aucune) As String

jusqueSeize = Array("zéro", "un", "deux", "trois", "quatre", "cinq", "six", "sept", "huit", "neuf", "dix", "onze", "douze", "treize", "quatorze", "quinze", "seize")
'...    
Rejoignez-nous