Soyez le premier à donner votre avis sur cette source.
Snippet vu 15 946 fois - Téléchargée 35 fois
Function TRAD_mt(Mt As Currency) As String ' la fonction de traduit pas au dela de 999 999 999 ' car la fonction mod produit un depassement de capacité Dim TExt As String, EXp1 As String Dim VAleur As Currency Dim ENtier As Integer, UNite As Integer If Mt > 999999999.99 Then TRAD_mt = "MONTANT TROP IMPORTANT" Exit Function End If If Mt = 0 Then TRAD_mt = "ZERO EURO ZERO CTS" Exit Function End If VAleur = Abs(Mt) VAleur = VAleur * 100 ENtier = CInt(Mid(CStr(VAleur), Len(CStr(VAleur)) - 1, 2)) If ENtier <> 0 Then TExt = MONt(ENtier) & "CTS" Else TExt = "" End If VAleur = Int(VAleur / 100) If (VAleur Mod 1000000) <> 0 Then TExt = "EUROS " & TExt Else If VAleur <> 0 Then TExt = "D' EUROS " & TExt End If End If UNite = 0 Do Until VAleur = 0 ENtier = VAleur Mod 1000 If ENtier = 0 Then VAleur = Int(VAleur / 1000) Else ENtier = VAleur Mod 100 If ENtier > 1 And UNite > 1 Then TExt = "S " & TExt Else TExt = " " & TExt End If Select Case UNite Case 0 Case 1 TExt = "MILLE" & TExt Case 2 TExt = "MILLION" & TExt Case 3 TExt = "MILLIARD" & TExt Case Else TExt = "ERREUR " & TExt End Select If ENtier <> 0 Then If ENtier > 1 Or UNite > 1 Then TExt = MONt(ENtier) & TExt ElseIf ENtier = 1 And UNite = 0 Then TExt = MONt(ENtier) & TExt End If End If VAleur = Int(VAleur / 100) ENtier = VAleur Mod 10 If ENtier <> 0 Then TExt = "CENT " & TExt If ENtier <> 1 Then TExt = MONt(ENtier) & TExt End If End If VAleur = Int(VAleur / 10) End If UNite = UNite + 1 Loop If Mt < 0 Then TExt = "MOINS " & TExt End If TRAD_mt = TExt End Function Function MONt(Mt As Integer) As String Select Case Mt Case 1 MONt = "UN " Case 2 MONt = "DEUX " Case 3 MONt = "TROIS " Case 4 MONt = "QUATRE " Case 5 MONt = "CINQ " Case 6 MONt = "SIX " Case 7 MONt = "SEPT " Case 8 MONt = "HUIT " Case 9 MONt = "NEUF " Case 10 MONt = "DIX " Case 11 MONt = "ONZE " Case 12 MONt = "DOUZE " Case 13 MONt = "TREIZE " Case 14 MONt = "QUATORZE " Case 15 MONt = "QUINZE " Case 16 MONt = "SEIZE " Case 17 MONt = "DIX-SEPT " Case 18 MONt = "DIX-HUIT " Case 19 MONt = "DIX-NEUF " Case 20 MONt = "VINGT " Case 21 MONt = "VINGT ET UN " Case 22 MONt = "VINGT DEUX " Case 23 MONt = "VINGT TROIS " Case 24 MONt = "VINGT QUATRE " Case 25 MONt = "VINGT CINQ " Case 26 MONt = "VINGT SIX " Case 27 MONt = "VINGT SEPT " Case 28 MONt = "VINGT HUIT " Case 29 MONt = "VINGT NEUF " Case 30 MONt = "TRENTE " Case 31 MONt = "TRENTE ET UN " Case 32 MONt = "TRENTE DEUX " Case 33 MONt = "TRENTE TROIS " Case 34 MONt = "TRENTE QUATRE " Case 35 MONt = "TRENTE CINQ " Case 36 MONt = "TRENTE SIX " Case 37 MONt = "TRENTE SEPT " Case 38 MONt = "TRENTE HUIT " Case 39 MONt = "TRENTE NEUF " Case 40 MONt = "QUARANTE " Case 41 MONt = "QUARANTE ET UN " Case 42 MONt = "QUARANTE DEUX " Case 43 MONt = "QUARANTE TROIS " Case 44 MONt = "QUARANTE QUATRE " Case 45 MONt = "QUARANTE CINQ " Case 46 MONt = "QUARANTE SIX " Case 47 MONt = "QUARANTE SEPT " Case 48 MONt = "QUARANTE HUIT " Case 49 MONt = "QUARANTE NEUF " Case 50 MONt = "CINQUANTE " Case 51 MONt = "CINQUANTE ET UN " Case 52 MONt = "CINQUANTE DEUX " Case 53 MONt = "CINQUANTE TROIS " Case 54 MONt = "CINQUANTE QUATRE " Case 55 MONt = "CINQUANTE CINQ " Case 56 MONt = "CINQUANTE SIX " Case 57 MONt = "CINQUANTE SEPT " Case 58 MONt = "CINQUANTE HUIT " Case 59 MONt = "CINQUANTE NEUF " Case 60 MONt = "SOIXANTE " Case 61 MONt = "SOIXANTE ET UN " Case 62 MONt = "SOIXANTE DEUX " Case 63 MONt = "SOIXANTE TROIS " Case 64 MONt = "SOIXANTE QUATRE " Case 65 MONt = "SOIXANTE CINQ " Case 66 MONt = "SOIXANTE SIX " Case 67 MONt = "SOIXANTE SEPT " Case 68 MONt = "SOIXANTE HUIT " Case 69 MONt = "SOIXANTE NEUF " Case 70 MONt = "SOIXANTE DIX " Case 71 MONt = "SOIXANTE ET ONZE " Case 72 MONt = "SOIXANTE DOUZE " Case 73 MONt = "SOIXANTE TREIZE " Case 74 MONt = "SOIXANTE QUATORZE " Case 75 MONt = "SOIXANTE QUINZE " Case 76 MONt = "SOIXANTE SEIZE " Case 77 MONt = "SOIXANTE DIX SEPT " Case 78 MONt = "SOIXANTE DIX HUIT " Case 79 MONt = "SOIXANTE DIX NEUF " Case 80 MONt = "QUATRE VINGT " Case 81 MONt = "QUATRE VINGT UN " Case 82 MONt = "QUATRE VINGT DEUX " Case 83 MONt = "QUATRE VINGT TROIS " Case 84 MONt = "QUATRE VINGT QUATRE " Case 85 MONt = "QUATRE VINGT CINQ " Case 86 MONt = "QUATRE VINGT SIX " Case 87 MONt = "QUATRE VINGT SEPT " Case 88 MONt = "QUATRE VINGT HUIT " Case 89 MONt = "QUATRE VINGT NEUF " Case 90 MONt = "QUATRE VINGT DIX " Case 91 MONt = "QUATRE VINGT ONZE " Case 92 MONt = "QUATRE VINGT DOUZE " Case 93 MONt = "QUATRE VINGT TREIZE " Case 94 MONt = "QUATRE VINGT QUATORZE " Case 95 MONt = "QUATRE VINGT QUINZE " Case 96 MONt = "QUATRE VINGT SEIZE " Case 97 MONt = "QUATRE VINGT DIX SEPT " Case 98 MONt = "QUATRE VINGT DIX HUIT " Case 99 MONt = "QUATRE VINGT DIX NEUF " Case Else MONt = "ERREUR .." End Select End Function
16 juil. 2005 à 08:25
Pour le long select case, un zoli tableau de string ferait l' affaire:
dim tabl() as string
tab(1)="un"
tab(2)="deux"
ainsi le long select case deviendrait une seule ligne:
MONt=tabl(Mt)
En outre, autre méthode: pourquoi pas gérer un tableau pour les dizaines et un pour les chiffres entiers? Toujours dans le but de réduire la taille de ce long select case.
18 oct. 2004 à 11:47
Néanmoins, ça reste un exemple à étudier...
18 oct. 2004 à 11:40
Pour reprendre l'exemple plus haut, ton code doit respecter toutes les subtilités de la langue française : 300 (trois cents), 310 (trois cent dix). Pour les nombres inférieurs à dix centimes, il reste également un problème.
++
Moustachu
18 oct. 2004 à 11:04
DrJo45 c pas parce que tu t'es fais jeté par un code que t as même pas produit que tu dois venir enfoncer les autres. Et je vois pas ce qu'il a de plus évolué... enfin je dois être bête !
Et oui je fais des fautes d'ortho et alors? Je dois pu écrire c ça? Je dois pu partager car mes talents de programmeur en sont altéré? allé... vive les programmeurs !
18 oct. 2004 à 09:20
Je ne vois pas bien l'intéret d'en rajouter une de plus qui n'ajoute rien à part des fautes de français !
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.