Convertir un integer en string (chiffres en toutes lettres)

Contenu du snippet

Re pour aujourd hui :)

Deux petites fonctions pratiques pour convertir une somme en euros et centimes integer en chaine de caractères donc en toutes lettres :)

dites moi si il y a des bugs thx !

Source / Exemple :


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

A voir également

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.