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 Con­vert Num­bers into Text, please fol­low the steps below

Down­load Link: Num­ber­ToWords
Exam­ple:

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

 Steps:

  • Open a new WorkBook
  • Cre­ate a Button
  • Copy Paste the Com­plete Code
  • Assign the macro to the but­ton created
  • Write the Num­ber in Col­umn A
  • Click the Con­vert button
  • You will find the text of num­ber in col­umn B

Com­plete Code:

Down­load Link : Num­ber­ToWords

Convert Number to Words

Con­vert Num­ber to Words

 

You may also like...

45 Responses

  1. arun says:

    Its superb. As i am in project man­age­ment 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 down­load the excel from the link pro­vided at the begin­ning and start using it.

    Pls trou­ble me again for any fur­ther queries 😉

  4. Rashed says:

    It helped me a lot. please pro­vide me the code for num­bers up to 13 dig­its and prefer­ably up to 15 dig­its (whole numbers).

  5. Vishav says:

    Need This Func­tion Till 1000 crores, Thanks .…

  6. ashish mehra says:

    If you want to know more about “Con­vert Num­ber To Words In Indian For­mat”, 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, oth­er­wise I always get for­eign­ers.
    By the way,
    I want to lock some of cells in all worksheet(including adding new work­sheet) within a work­book, and donot select locked cell.

    What code should be and where type code i.e in mod­ule or at workbook.

    Exam­ple:
    Lock cell (A1:C2) and (D2:F4) and (B1:B12) in work­sheet as well as adding new work­sheet with­ing 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 prob­lem is that it doesn’t han­dle the part after dec­i­mals, so I can’t con­vert paise to words, e.g. 123.45 = Rupees One Hun­dred Twenty Three And Paise Forty Five Only.
    Can you kindly mod­ify the code to reflect the same? I am a noob with VB. I’ll be really grate­ful.
    Regards,
    Zaib.

    • Sumit Jain says:

      Apolo­gies for the late response. The post has been updated for dec­i­mal val­ues as well.

      Thanks
      Sumit Jain

  10. Omar says:

    Num­bers with dec­i­mal points do not seem to work.

    • Sumit Jain says:

      The post has been updated for dec­i­mal val­ues as well.

      Thanks
      Sumit Jain

      • Ramlal Singh says:

        You worked hard, but in your for­mula 0.80 con­vert­ing
        that =
        ” Rupees and Eight paise ’ whereas it should be
        ” Rupees Zero and Eighty paise“
        As such needs few amendments

  11. krishna says:

    Hi,

    I have used sim­i­lar code in my excel. the only issue is for exam­ple 6762.66 it reads incor­rectly as as “Rupees Six Thou­sand Seven Hun­dred Sixty Two and Sixty Five Paisas Only” please help me on this. instead of Sixty six , it reads as “sixty five”

    Regards,
    Krish­naprasad PB

    • SJ says:

      The excel i have shared shows “Rupees Six Thou­sand Seven Hun­dred 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

        Func­tion SpellCurr(ByVal MyNum­ber, _
        Optional MyCur­rency As String = “Rupee”, _
        Optional MyCur­ren­cy­Place As String = “P”, _
        Optional MyCur­ren­cy­Dec­i­mals As String = “Paisa”, _
        Optional MyCur­ren­cy­Dec­i­mal­sPlace As String = “S”)

        *****************************************************************************************************************
        ’* Based on Spell­Num­bers UDF by Microsoft, Which han­dles only Dol­lars as cur­rency *
        ’* UDF mod­fied by Yogesh Gupta, [email protected], Ygblogs.blogspot.com on July 21, 2009 *
        ’* UDF mod­i­fied on Sep­tem­ber 04, 2009 to make cur­rency inputs optional, by default it will use Indian Cur­rency *
        ’* This mod­i­fied UDF can be used for any cur­rency in case you pro­vide for cur­rency inputs *
        ’* User can define the Pre­fix and Sufix place for Cur­rency and Cur­ren­cy­Dec­i­mals *
        ’* MyNum­ber = Numeric Value you need to con­vert into words *
        ’* MyCur­rency = Name of your Cur­rency — i.e. Dol­lar for USA *
        ’* MyCur­ren­cy­Place = Pre­fix or Suf­fix the cur­rency, use “P” for Pre­fix and “S” for Suf­fix *
        ’* MyCur­ren­cy­Dec­i­mals = Name of your Cur­rency Dec­i­mals — i.e. Cent for USA *
        ’* MyCur­ren­cy­Dec­i­mal­sPlace = Pre­fix or Suf­fix the cur­rency dec­i­mals, use “P” for Pre­fix and “S” for Suf­fix *
        ’*****************************************************************************************************************

        Dim Rupees, Paisa, Temp
        Dim Dec­i­malPlace, Count

        ReDim Place(9) As String
        Place(2) = ” Thou­sand “
        Place(3) = ” Mil­lion “
        Place(4) = ” Bil­lion “
        Place(5) = ” Trillion ”

        ‘String rep­re­sen­ta­tion of amount.
        MyNum­ber = Trim(Str(MyNumber))

        ‘Posi­tion of dec­i­mal place 0 if none.
        Dec­i­malPlace = InStr(MyNumber, “.”)

        ’ Con­vert Paisa and set MyNum­ber to Rupee amount.
        If Dec­i­malPlace > 0 Then
        Paisa = GetTens(Left(Mid(MyNumber, Dec­i­malPlace + 1) & _
        “00”, 2))
        MyNum­ber = Trim(Left(MyNumber, Dec­i­malPlace — 1))
        End If

        Count = 1

        Do While MyNum­ber ““
        Temp = GetHundreds(Right(MyNumber, 3))
        If Temp “” Then Rupees = Temp & Place(Count) & Rupees
        If Len(MyNumber) > 3 Then
        MyNum­ber = Left(MyNumber, Len(MyNumber) — 3)
        Else
        MyNum­ber = ““
        End If
        Count = Count + 1

        Loop

        If MyCur­ren­cy­Place = “P” Then
        Select Case Rupees
        Case ““
        Rupees = MyCur­rency & “s” & ” Zero“
        Case “One“
        Rupees = MyCur­rency & ” One“
        Case Else
        Rupees = MyCur­rency & “s ” & Rupees
        End Select
        Else
        Select Case Rupees
        Case ““
        Rupees = “Zero ” & MyCur­rency & “s“
        Case “One“
        Rupees = “One ” & MyCur­rency
        Case Else
        Rupees = Rupees & ” ” & MyCur­rency & “s“
        End Select
        End If

        If MyCur­ren­cy­Dec­i­mal­sPlace = “S” Then
        Select Case Paisa
        Case ““
        Paisa = ” Only“
        Case “One“
        Paisa = ” and One ” & MyCur­ren­cy­Dec­i­mals & ” Only“
        Case Else
        Paisa = ” and ” & Paisa & ” ” & MyCur­ren­cy­Dec­i­mals & “s Only“
        End Select
        Else
        Select Case Paisa
        Case ““
        Paisa = ” Only“
        Case “One“
        Paisa = ” and ” & MyCur­ren­cy­Dec­i­mals & ” One ” & ” Only“
        Case Else
        Paisa = ” and ” & MyCur­ren­cy­Dec­i­mals & “s ” & Paisa & ” Only“
        End Select
        End If

        Spell­Curr = Rupees & Paisa

        End Function

        ‘*******************************************
        ’ Con­verts a num­ber from 100–999 into text *
        ‘*******************************************

        Func­tion GetHundreds(ByVal MyNum­ber)
        Dim Result As String
        If Val(MyNumber) = 0 Then Exit Func­tion
        MyNum­ber = Right(“000” & MyNum­ber, 3)
        ’ Con­vert the hun­dreds place.
        If Mid(MyNumber, 1, 1) “0” Then
        Result = GetDigit(Mid(MyNumber, 1, 1)) & ” Hun­dred “
        End If

        ’ Con­vert 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
        GetH­un­dreds = Result
        End Function

        ‘*********************************************
        ’ Con­verts a num­ber from 10 to 99 into text. *
        ‘*********************************************
        Func­tion GetTens(TensText)

        Dim Result As String
        Result = “” ’ Null out the tem­po­rary func­tion 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 = “Thir­teen“
        Case 14: Result = “Four­teen“
        Case 15: Result = “Fif­teen“
        Case 16: Result = “Six­teen“
        Case 17: Result = “Sev­en­teen“
        Case 18: Result = “Eigh­teen“
        Case 19: Result = “Nine­teen“
        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 = “Sev­enty “
        Case 8: Result = “Eighty “
        Case 9: Result = “Ninety “
        Case Else
        End Select

        Result = Result & Get­Digit _
        (Right(TensText, 1)) ’ Retrieve ones place.
        End If
        Get­Tens = Result
        End Function

        ‘*******************************************
        ’ Con­verts a num­ber from 1 to 9 into text. *
        ‘*******************************************

        Func­tion GetDigit(Digit)
        Select Case Val(Digit)
        Case 1: Get­Digit = “One“
        Case 2: Get­Digit = “Two“
        Case 3: Get­Digit = “Three“
        Case 4: Get­Digit = “Four“
        Case 5: Get­Digit = “Five“
        Case 6: Get­Digit = “Six“
        Case 7: Get­Digit = “Seven“
        Case 8: Get­Digit = “Eight“
        Case 9: Get­Digit = “Nine“
        Case Else: Get­Digit = ““
        End Select
        End Function

  12. krishna says:

    And one more thing. It cal­cu­lates from the col­umn which is hav­ing formula.

  13. krishna says:

    if you want i will share my excel

  14. Paras Sugandh says:

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

  15. Gowri says:

    Won­der­ful.. Thanks much!!

  16. rajesh says:

    set ur dec­i­mal upto three points u will get the answer for 65 insteat of 66 paise. check ur for­mat cell please

  17. Amit Mazumdar says:

    Thanks a lot sumit really appre­ci­ate you work.….

  18. Shahid says:

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

  19. Prashant Lenka says:

    How to Indian num­ber con­vert to word up to 17 digit number?

    How to Indian num­ber con­vert to word up to 17 digit num­ber in excel sheet?

    10000000: Result = ” Crore “
    100000000: Result = “Ten Crores “
    1000000000: Result = “One Hun­dred Crores“
    10000000000: Result = “One Thou­sand Crores“
    100000000000: Result = “Ten Thou­sand Crores“
    1000000000000: Result = “One Lakh Crores“
    10000000000000: Result = “Ten Lakh Crores“
    100000000000000: Result = “One Hun­dred Lakh Crores“
    1000000000000000: Result = “One Thou­sand Lakh Crores“
    10000000000000000: Result = “Ten Thou­sand Lakh Crores”

  20. Muhammed says:

    Hi

    You solve my prob­lem upto an extend . Thanks a lot for that.
    Is it pos­si­ble to con­vert three dig­its after dec­i­mals as I am liv­ing in Bahrain and here we are using three digit after dec­i­mal.
    Exam­ple
    100.101 One Hun­dred Bahraini Dinar and Hun­dred and One fils

    • SJ says:

      yes, we need to make some sim­ple changes in the code to do that, let me know if u need pass­word for to make these changes or u need any help in mak­ing changes

  21. yogesh says:

    i have both of ruppy and doller plz answer

  22. Kaushal mishra says:

    Its not con­vert­ing paise in mul­ti­ple 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: Con­vert Num­bers (Rupees) into Words OR Text […]

Leave a Reply

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

%d bloggers like this: