Wednesday, November 20, 2013

Convert Numbers into words(Currency) in Excel

How to convert Numbers into English words as currency in Excel

Open Excel,
Alt + F11
Insert, Module

copy the code below and paste into module(after start line and before end line)
----------------------------------------------
Option Explicit
'Main Function
Function SpellNumber(ByVal MyNumber)
    Dim Dirhams, Fils, 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 Fils and set MyNumber to Dirham amount.
    If DecimalPlace > 0 Then
        Fils = 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 Dirhams = Temp & Place(Count) & Dirhams
        If Len(MyNumber) > 3 Then
            MyNumber = Left(MyNumber, Len(MyNumber) - 3)
        Else
            MyNumber = ""
        End If
        Count = Count + 1
    Loop
    Select Case Dirhams
        Case ""
            Dirhams = "No Dirhams"
        Case "One"
            Dirhams = "One Dirham"
         Case Else
            Dirhams = Dirhams & " Dirhams"
    End Select
    Select Case Fils
        Case ""
            Fils = " and No Fils"
        Case "One"
            Fils = " and One Fil"
              Case Else
            Fils = " and " & Fils & " Fils"
    End Select
    SpellNumber = Dirhams & Fils
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
---------------------------------------------

Save and exit
Put any number in Cell A1
Type Formulae into A2=Spellnumber(A1)
The number will be spelled into currency


7 comments:

  1. I like their forex-copy system. You can copy the trades of successful traders and earn money even if you're newbie. And I'd like to say that their trading conditions are very suitable for me. Spreads are good, I choose 1:600 leverage, no requites

    Right Forex Broker

    ReplyDelete
  2. hi,

    found an alternative solution:
    http://moxie4nav.wordpress.com/2014/12/08/numbers-to-words/

    regards

    ReplyDelete
    Replies
    1. Thank you very much for the information.

      Delete
    2. Thank you very much for the information.

      Delete
  3. Inside Forex markets, it indicates you've sold a currency pair, meaning you've sold the camp currency and bought the counter currency. So you're still making an exchange, just from the opposite order and as outlined by currency-pair quoting terms.guarantor loans

    ReplyDelete