Convertir chiffres en lettre Syntax Error

Bonjour,

Je tente d'insérer le module de transformation de chiffre en lettre sur excel mais j'obtiens toujours la même erreur ;

https://support.microsoft.com/en-us/office/convert-numbers-into-words-a0d166fb-e1ea-4090-95c8-69442cd55d98?ui=en-us&rs=en-us&ad=us

Configuration: Windows / Chrome 79.0.3945.130

4 réponses

  1. Contributeur
    Bonjour,

    comme ceci:

    Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2))


    1
    1. Bonjour et merci pour votre réponse !

      Auriez vous le code complet car j'ai maintenant d'autres fautes de syntaxe
      0
      1. Contributeur
        Voilà:

        Option Explicit
        Sub test()
        Range("A1") = "145689"
        Range("B1") = SpellNumber("145689")
        End Sub
        Function SpellNumber(ByVal MyNumber)
        
        Dim Dollars, Cents, Temp
        
        Dim DecimalPlace, Count
        
        ReDim Place(9) As String
        
        Place(2) = " Thousand "
        
        Place(3) = " Million "
        
        Place(4) = " Billion "
        
        Place(5) = " Trillion "
        
        ' String representation of amount.
        
        MyNumber = Trim(Str(MyNumber))
        
        ' Position of decimal place 0 if none.
        
        DecimalPlace = InStr(MyNumber, ".")
        
        ' Convert cents and set MyNumber to dollar amount.
        
        If DecimalPlace > 0 Then
        
        Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2))
        
        MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
        
        End If
        
        Count = 1
        
        Do While MyNumber <> ""
        
        Temp = GetHundreds(Right(MyNumber, 3))
        
        If Temp <> "" Then Dollars = Temp & Place(Count) & Dollars
        
        If Len(MyNumber) > 3 Then
        
        MyNumber = Left(MyNumber, Len(MyNumber) - 3)
        
        Else
        
        MyNumber = ""
        
        End If
        
        Count = Count + 1
        
        Loop
        
        Select Case Dollars
        
        Case ""
        
        Dollars = "No Dollars"
        
        Case "One"
        
        Dollars = "One Dollar"
        
        Case Else
        
        Dollars = Dollars & " Dollars"
        
        End Select
        
        Select Case Cents
        
        Case ""
        
        Cents = " and No Cents"
        
        Case "One"
        
        Cents = " and One Cent"
        
        Case Else
        
        Cents = " and " & Cents & " Cents"
        
        End Select
        
        SpellNumber = Dollars & Cents
        
        End Function
        
        
        ' Converts a number from 100-999 into text
        
        Function GetHundreds(ByVal MyNumber)
        
        Dim Result As String
        
        If Val(MyNumber) = 0 Then Exit Function
        
        MyNumber = Right("000" & MyNumber, 3)
        
        ' Convert the hundreds place.
        
        If Mid(MyNumber, 1, 1) <> "0" Then
        
        Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
        
        End If
        
        ' Convert the tens and ones place.
        
        If Mid(MyNumber, 2, 1) <> "0" Then
        
        Result = Result & GetTens(Mid(MyNumber, 2))
        
        Else
        
        Result = Result & GetDigit(Mid(MyNumber, 3))
        
        End If
        
        GetHundreds = Result
        
        End Function
        
        
        ' Converts a number from 10 to 99 into text.
        
        
        Function GetTens(TensText)
        
        Dim Result As String
        
        Result = "" ' Null out the temporary function value.
        
        If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19...
        
        Select Case Val(TensText)
        
        Case 10: Result = "Ten"
        
        Case 11: Result = "Eleven"
        
        Case 12: Result = "Twelve"
        
        Case 13: Result = "Thirteen"
        
        Case 14: Result = "Fourteen"
        
        Case 15: Result = "Fifteen"
        
        Case 16: Result = "Sixteen"
        
        Case 17: Result = "Seventeen"
        
        Case 18: Result = "Eighteen"
        
        Case 19: Result = "Nineteen"
        
        Case Else
        
        End Select
        
        Else ' If value between 20-99...
        
        Select Case Val(Left(TensText, 1))
        
        Case 2: Result = "Twenty "
        
        Case 3: Result = "Thirty "
        
        Case 4: Result = "Forty "
        
        Case 5: Result = "Fifty "
        
        Case 6: Result = "Sixty "
        
        Case 7: Result = "Seventy "
        
        Case 8: Result = "Eighty "
        
        Case 9: Result = "Ninety "
        
        Case Else
        
        End Select
        
        Result = Result & GetDigit(Right(TensText, 1))  ' Retrieve ones place.
        
        End If
        
        GetTens = Result
        
        End Function
        
        
        ' Converts a number from 1 to 9 into text.
        
        Function GetDigit(Digit)
        
        Select Case Val(Digit)
        
        Case 1: GetDigit = "One"
        
        Case 2: GetDigit = "Two"
        
        Case 3: GetDigit = "Three"
        
        Case 4: GetDigit = "Four"
        
        Case 5: GetDigit = "Five"
        
        Case 6: GetDigit = "Six"
        
        Case 7: GetDigit = "Seven"
        
        Case 8: GetDigit = "Eight"
        
        Case 9: GetDigit = "Nine"
        
        Case Else: GetDigit = ""
        
        End Select
        
        End Function
        
        


        @+ Le Pivert
        0
    2. Un tout grand merci ! Cela fonctionne parfaitement maintenant.

      Pourrais-je encore juste abuser de votre aide pour demande s'il est possible de changer la monnaie ? en EUR par exemple ?
      0
      1. Contributeur
        Tu as un exemple en français et en euro ici:

        https://www.commentcamarche.net/faq/11100-vb6-net-vba-transformer-chiffres-en-lettre

        sinon pour changer Dollars en Euros:

        Select Case Dollars
        
        Case ""
        
        Dollars = "No Euros"
        
        Case "One"
        
        Dollars = "One Euro"
        
        Case Else
        
        Dollars = Dollars & " Euros"
        
        End Select


        Voilà
        0
    3. Top merci beaucoup !
      ça marche effectivement bien.

      Bonne fin de journée
      0