Show Buttons
Share On Facebook
Share On Twitter
Share On Google Plus
Share On Linkdin
Share On Reddit
Contact us
Hide Buttons

VBA-Excel: Convert Numbers (Rupees) into Words OR Text – Updated Till 1000000 Crore With Decimal Numbers

To Convert Numbers into Text, please follow the steps below

Download Link: NumberToWords
Example:

1000000000.00 Rupees One Hundred Crores
345.56 Rupees Three Hundred Fourty Five and Fifty Six paise only
12312312.00 Rupees One Crore Twenty Three Lacs Twelve Thousand Three Hundred Twelve
999999999.00 Rupees Ninty Nine Crores Ninty Nine Lacs Ninty Nine Thousand Nine Hundred Ninty Nine
9999999999.00 Rupees Nine Hundred Ninty Nine Crores Ninty Nine Lacs Ninty Nine Thousand Nine Hundred Ninty Nine
1212.34 Rupees One Thousand Two Hundred Twelve and Thirty Four paise only
23231111.00 Rupees Two Crore Thirty Two Lacs Thirty One Thousand One Hundred Eleven

 Steps:

  • Open a new WorkBook
  • Create a Button
  • Copy Paste the Complete Code
  • Assign the macro to the button created
  • Write the Number in Column A
  • Click the Convert button
  • You will find the text of number in column B

Complete Code:

Download Link : NumberToWords

Convert Number to Words

Convert Number to Words

 

You may also like...

45 Responses

  1. arun says:

    Its superb. As i am in project management it helps me a lot.

    Thank u

  2. atul jahagirdar says:

    Dear Sumit,

    Pleas advice how can work in excel,EG i added the code in vb afterthat how can use in excel.Please advice

  3. sumitjain says:

    @Atul ..instead of that u can just download the excel from the link provided at the beginning and start using it.

    Pls trouble me again for any further queries 😉

  4. Rashed says:

    It helped me a lot. please provide me the code for numbers up to 13 digits and preferably up to 15 digits (whole numbers).

  5. Vishav says:

    Need This Function Till 1000 crores, Thanks ….

  6. ashish mehra says:

    If you want to know more about “Convert Number To Words In Indian Format”, check this link ……..

    http://www.exceltip.com/tips/convert-number-to-words-in-indian-format-in-microsoft-excel-2010-2013.html

  7. Akhilesh says:

    Hi Mr. Sumit,

    Nice to see a Indian Excel expert, otherwise I always get foreigners.
    By the way,
    I want to lock some of cells in all worksheet(including adding new worksheet) within a workbook, and donot select locked cell.

    What code should be and where type code i.e in module or at workbook.

    Example:
    Lock cell (A1:C2) and (D2:F4) and (B1:B12) in worksheet as well as adding new worksheet withing a workbook.

  8. Madhura says:

    It helped me a lot and saved time thank you very much

  9. Zaib says:

    Hi Sumit,
    Many thanks for your code. It really helps me a lot. The only problem is that it doesn’t handle the part after decimals, so I can’t convert paise to words, e.g. 123.45 = Rupees One Hundred Twenty Three And Paise Forty Five Only.
    Can you kindly modify the code to reflect the same? I am a noob with VB. I’ll be really grateful.
    Regards,
    Zaib.

    • Sumit Jain says:

      Apologies for the late response. The post has been updated for decimal values as well.

      Thanks
      Sumit Jain

  10. Omar says:

    Numbers with decimal points do not seem to work.

  11. SUM0N @HM3D says:

    How to convert “123 = একশত তেইশ টাকা” in excel 2003/2007.
    Please help me if anybody can…
    Send me Code.

    Contract @ 01722-844142.
    Mail: [email protected]

    Wait for your info…….

  12. krishna says:

    Hi,

    I have used similar code in my excel. the only issue is for example 6762.66 it reads incorrectly as as “Rupees Six Thousand Seven Hundred Sixty Two and Sixty Five Paisas Only” please help me on this. instead of Sixty six , it reads as “sixty five”

    Regards,
    Krishnaprasad PB

    • SJ says:

      The excel i have shared shows “Rupees Six Thousand Seven Hundred Sixty Two and Sixty Six paise only”, can you share the code you r using so that i can take a look.

      • krishna says:

        this is the code I am using taken from http://www.yogeshguptaonline.com/2009/07/excel-functions-convert-numbers-into.html?showComment=1442926469103#c6313997018215034694

        Function SpellCurr(ByVal MyNumber, _
        Optional MyCurrency As String = “Rupee”, _
        Optional MyCurrencyPlace As String = “P”, _
        Optional MyCurrencyDecimals As String = “Paisa”, _
        Optional MyCurrencyDecimalsPlace As String = “S”)

        ‘*****************************************************************************************************************
        ‘* Based on SpellNumbers UDF by Microsoft, Which handles only Dollars as currency *
        ‘* UDF modfied by Yogesh Gupta, [email protected], Ygblogs.blogspot.com on July 21, 2009 *
        ‘* UDF modified on September 04, 2009 to make currency inputs optional, by default it will use Indian Currency *
        ‘* This modified UDF can be used for any currency in case you provide for currency inputs *
        ‘* User can define the Prefix and Sufix place for Currency and CurrencyDecimals *
        ‘* MyNumber = Numeric Value you need to convert into words *
        ‘* MyCurrency = Name of your Currency – i.e. Dollar for USA *
        ‘* MyCurrencyPlace = Prefix or Suffix the currency, use “P” for Prefix and “S” for Suffix *
        ‘* MyCurrencyDecimals = Name of your Currency Decimals – i.e. Cent for USA *
        ‘* MyCurrencyDecimalsPlace = Prefix or Suffix the currency decimals, use “P” for Prefix and “S” for Suffix *
        ‘*****************************************************************************************************************

        Dim Rupees, Paisa, 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 Paisa and set MyNumber to Rupee amount.
        If DecimalPlace > 0 Then
        Paisa = 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 Rupees = Temp & Place(Count) & Rupees
        If Len(MyNumber) > 3 Then
        MyNumber = Left(MyNumber, Len(MyNumber) – 3)
        Else
        MyNumber = “”
        End If
        Count = Count + 1

        Loop

        If MyCurrencyPlace = “P” Then
        Select Case Rupees
        Case “”
        Rupees = MyCurrency & “s” & ” Zero”
        Case “One”
        Rupees = MyCurrency & ” One”
        Case Else
        Rupees = MyCurrency & “s ” & Rupees
        End Select
        Else
        Select Case Rupees
        Case “”
        Rupees = “Zero ” & MyCurrency & “s”
        Case “One”
        Rupees = “One ” & MyCurrency
        Case Else
        Rupees = Rupees & ” ” & MyCurrency & “s”
        End Select
        End If

        If MyCurrencyDecimalsPlace = “S” Then
        Select Case Paisa
        Case “”
        Paisa = ” Only”
        Case “One”
        Paisa = ” and One ” & MyCurrencyDecimals & ” Only”
        Case Else
        Paisa = ” and ” & Paisa & ” ” & MyCurrencyDecimals & “s Only”
        End Select
        Else
        Select Case Paisa
        Case “”
        Paisa = ” Only”
        Case “One”
        Paisa = ” and ” & MyCurrencyDecimals & ” One ” & ” Only”
        Case Else
        Paisa = ” and ” & MyCurrencyDecimals & “s ” & Paisa & ” Only”
        End Select
        End If

        SpellCurr = Rupees & Paisa

        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

  13. krishna says:

    And one more thing. It calculates from the column which is having formula.

  14. krishna says:

    if you want i will share my excel

  15. Paras Sugandh says:

    My VBA Code didnt come fully. Where can i share it.. Thanks

  16. Gowri says:

    Wonderful.. Thanks much!!

  17. rajesh says:

    set ur decimal upto three points u will get the answer for 65 insteat of 66 paise. check ur format cell please

  18. Amit Mazumdar says:

    Thanks a lot sumit really appreciate you work…..

  19. Shahid says:

    hello sir,
    can you please send me a video clip odf all this method?
    it’ll be so nice of you.

  20. Prashant Lenka says:

    How to Indian number convert to word up to 17 digit number?

    How to Indian number convert to word up to 17 digit number in excel sheet?

    10000000: Result = ” Crore ”
    100000000: Result = “Ten Crores ”
    1000000000: Result = “One Hundred Crores”
    10000000000: Result = “One Thousand Crores”
    100000000000: Result = “Ten Thousand Crores”
    1000000000000: Result = “One Lakh Crores”
    10000000000000: Result = “Ten Lakh Crores”
    100000000000000: Result = “One Hundred Lakh Crores”
    1000000000000000: Result = “One Thousand Lakh Crores”
    10000000000000000: Result = “Ten Thousand Lakh Crores”

  21. Muhammed says:

    Hi

    You solve my problem upto an extend . Thanks a lot for that.
    Is it possible to convert three digits after decimals as I am living in Bahrain and here we are using three digit after decimal.
    Example
    100.101 One Hundred Bahraini Dinar and Hundred and One fils

    • SJ says:

      yes, we need to make some simple changes in the code to do that, let me know if u need password for to make these changes or u need any help in making changes

  22. yogesh says:

    i have both of ruppy and doller plz answer

  23. Kaushal mishra says:

    Its not converting paise in multiple of tens. e.g. 10 paise, 20 paise and so on, please suggest

  1. June 17, 2016

    […] document.write(''); abinkar, Here are two for a start: https://www.livetolearn.in/site/blog…-indian-rupees VBA-Excel: Convert Numbers (Rupees) into Words OR Text […]

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: