Microsoft® Excel® based database addin

 

+ Reply to Thread
Results 1 to 3 of 3
  1. #1
    Ganta Amar Nath Guest

    Default how to convert numeric to words Example 525 in words (Twenty five

    How convert from numeric to words format. For Example Rs 125.00 in words (One
    hundred twenty five only)

  2. #2
    Niek Otten Guest

    Default Re: how to convert numeric to words Example 525 in words (Twenty five

    Look here for several solutions:

    http://xldynamic.com/source/xld.xlFAQ0004.html

    --
    Kind regards,

    Niek Otten
    Microsoft MVP - Excel

    "Ganta Amar Nath" <Ganta Amar Nath@discussions.microsoft.com> wrote in message
    news:61323F36-CF4F-4F0B-81B2-A36C47B71F5B@microsoft.com...
    | How convert from numeric to words format. For Example Rs 125.00 in words (One
    | hundred twenty five only)



  3. #3
    Bob Phillips Guest

    Default Re: how to convert numeric to words Example 525 in words (Twenty five

    Unfortunately, that site doesn't include a Rupee solution (yet) as India
    using a non-standard formatting.

    Try this version


    '-----------------------------------------------------------*------
    Function SpellNumber(ByVal MyNumber, _
    Optional incRupees As Boolean = True)
    '-----------------------------------------------------------*------
    Dim Crores, Lakhs, Rupees, Paise, Temp
    Dim DecimalPlace As Long, Count As Long
    Dim myLakhs, myCrores

    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 Paise and set MyNumber to Rupees amount.
    If DecimalPlace > 0 Then
    Paise = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2))
    MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
    End If
    myCrores = MyNumber \ 10000000
    myLakhs = (MyNumber - myCrores * 10000000) \ 100000
    MyNumber = MyNumber - myCrores * 10000000 - myLakhs * 100000

    Count = 1
    Do While myCrores <> ""
    Temp = GetHundreds(Right(myCrores, 3))
    If Temp <> "" Then Crores = Temp & Place(Count) & Crores
    If Len(myCrores) > 3 Then
    myCrores = Left(myCrores, Len(myCrores) - 3)
    Else
    myCrores = ""
    End If
    Count = Count + 1
    Loop

    Count = 1
    Do While myLakhs <> ""
    Temp = GetHundreds(Right(myLakhs, 3))
    If Temp <> "" Then Lakhs = Temp & Place(Count) & Lakhs
    If Len(myLakhs) > 3 Then
    myLakhs = Left(myLakhs, Len(myLakhs) - 3)
    Else
    myLakhs = ""
    End If
    Count = Count + 1
    Loop

    Count = 1
    Do While MyNumber <> ""
    Temp = GetHundreds(Right(MyNumber, 3))
    If Temp <> "" Then Rupees = Temp & Place(Count) & Rupees
    If Len(MyNumber) > 3 Then
    MyNumber = Left(MyNumber, Len(MyNumber) - 3)
    Else
    MyNumber = ""
    End If
    Count = Count + 1
    Loop

    Select Case Crores
    Case "": Crores = ""
    Case "One": Crores = " One Crore "
    Case Else: Crores = Crores & " Crores "
    End Select

    Select Case Lakhs
    Case "": Lakhs = ""
    Case "One": Lakhs = " One Lakh "
    Case Else: Lakhs = Lakhs & " Lakhs "
    End Select

    Select Case Rupees
    Case "": Rupees = "Zero "
    Case "One": Rupees = "One "
    Case Else: Rupees = Rupees
    End Select

    Select Case Paise
    Case "": Paise = " and Paise Zero Only "
    Case "One": Paise = " and Paise One Only "
    Case Else: Paise = " and Paise " & Paise & " Only "
    End Select

    SpellNumber = IIf(incRupees, "Rupees ", "") & Crores & Lakhs & Rupees &
    Paise

    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

    '-----------------------------------------------------------*------


    --
    HTH

    Bob

    (there's no email, no snail mail, but somewhere should be gmail in my addy)

    "Niek Otten" <nicolaus@xs4all.nl> wrote in message
    news:uNVTHx%235IHA.5052@TK2MSFTNGP03.phx.gbl...
    > Look here for several solutions:
    >
    > http://xldynamic.com/source/xld.xlFAQ0004.html
    >
    > --
    > Kind regards,
    >
    > Niek Otten
    > Microsoft MVP - Excel
    >
    > "Ganta Amar Nath" <Ganta Amar Nath@discussions.microsoft.com> wrote in
    > message
    > news:61323F36-CF4F-4F0B-81B2-A36C47B71F5B@microsoft.com...
    > | How convert from numeric to words format. For Example Rs 125.00 in words
    > (One
    > | hundred twenty five only)
    >
    >




Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts