# 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**

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

Thank u

You r very welcome arun 🙂

Dear Sumit,

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

@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 😉

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

Updated till 999 Crores…

Sumit

Need This Function Till 1000 crores, Thanks ….

Updated till 999 Crores…

Sumit

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

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.

Thanks Akhilesh :).

Please read these :

http://excel-macro.tutorialhorizon.com/excel-vba-prevent-adding-new-worksheet/

http://excel-macro.tutorialhorizon.com/excel-vba-range-lockunlock-specific-cells/

Now your another question was how to put it across all the worksheets in the excel, for the you need to navigate through all the sheets, i have used in one of my post , please read this for reference

http://excel-macro.tutorialhorizon.com/excel-vba-change-passwords-for-all-the-worksheets-in-one-shot/

Hope this helps, let me know it this is not clear.

Thanks

Sumit

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

Good to know that its useful.

Thanks for using.

Sumit

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.

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

Thanks

Sumit Jain

Numbers with decimal points do not seem to work.

The post has been updated for decimal values as well.

Thanks

Sumit Jain

You worked hard, but in your formula 0.80 converting

that =

” Rupees and Eight paise ‘ whereas it should be

” Rupees Zero and Eighty paise”

As such needs few amendments

Thanks Ram for finding the defect, will correct it soon. 🙂

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…….

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

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.

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

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

if you want i will share my excel

share it at [email protected] OR you can start using the excel linked in the post.

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

share @ [email protected]

Wonderful.. Thanks much!!

You are welcome, glad to know that it was helpful.

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

Thanks a lot sumit really appreciate you work…..

hello sir,

can you please send me a video clip odf all this method?

it’ll be so nice of you.

which video clip you are talking about, please elaborate your question

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”

Only number to word convert please any one guide me.

can u provide an example of what you are looking for?

its very simple, you can modify the existing code to work for higher numbers.

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

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

i have both of ruppy and doller plz answer

please refer http://excel-macro.tutorialhorizon.com/vba-excel-convert-numbers-dollars-euros-into-words-or-text-till-trillions/

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

Thanks Kaushal for finding it out, I have fixed it. Now It would work properly.