Conversion of Indian Rupees in Numbers to Text

Embed Size (px)

Citation preview

  • 7/28/2019 Conversion of Indian Rupees in Numbers to Text

    1/23

    Solution no. 1

    Ans 1.:

    Just copy and paste the below function in excel.

    Press Alt+F11, and paste the below function

    Option Explicit

    'Main Function

    Function SpellNumber(ByVal MyNumber)

    Dim Rupees, Paise, 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 paise and set MyNumber to Rupee amount.

    If DecimalPlace > 0 Then

    Paise = 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

    Select Case Rupees

    Case ""

    Rupees = "Zero Rupees"

    Case "One"

    Rupees = "One Rupee"

  • 7/28/2019 Conversion of Indian Rupees in Numbers to Text

    2/23

    Case Else

    Rupees = Rupees & " Rupees"

    End Select

    Select Case Paise

    Case ""

    Paise = " and Zero Paise"

    Case "One"

    Paise = " and One Paise"

    Case Else

    Paise = " and " & Paise & " Paise"

    End Select

    SpellNumber = 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"

  • 7/28/2019 Conversion of Indian Rupees in Numbers to Text

    3/23

    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

    PRESS ALT+Q to save and then exit.

  • 7/28/2019 Conversion of Indian Rupees in Numbers to Text

    4/23

    Ans:2

    1st u go to module (alt+11 ) & than click on module1 than ctrl+h a small screen display than u type find

    with dollar & replace with rupees and again ctrl+h than find with cents & replace with paisa

    now calculation shown us in rupees

    Solution no.2

    This is the Indian Currency, and not the one in the code above....

    Cheers

    '****************' Main Function *'****************

    Function SpellNumbers(ByVal MyNumber)

    Dim Rupees, Paise, Temp

    Dim DecimalPlace, Count

    ReDim Place(9) As String

    Place(2) = " Thousand "

    Place(3) = " Lac "

    Place(4) = " Crore "

    Place(5) = " Arab " ' String representation of amount

    MyNumber = Trim(Str(MyNumber)) ' Position of decimal place 0 if none

    DecimalPlace = InStr(MyNumber, ".")

    'Convert Paise and set MyNumber to Rupee amount

    If DecimalPlace > 0 Then

    Paise = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2))

    MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))

    End If

    Count = 1

    Do While MyNumber ""If Count = 1 Then Temp = GetHundreds(Right(MyNumber, 3))

    If Count > 1 Then Temp = GetHundreds(Right(MyNumber, 2))

    If Temp "" Then Rupees = Temp & Place(Count) & Rupees

    If Count = 1 And Len(MyNumber) > 3 Then

    MyNumber = Left(MyNumber, Len(MyNumber) - 3)

    Else

    If Count > 1 And Len(MyNumber) > 2 Then

    MyNumber = Left(MyNumber, Len(MyNumber) - 2)

  • 7/28/2019 Conversion of Indian Rupees in Numbers to Text

    5/23

    Else

    MyNumber = ""

    End If

    End If

    Count = Count + 1

    Loop

    Select Case Rupees

    Case ""

    Rupees = "No Rupees"

    Case "One"

    Rupees = "One Rupee"

    Case Else

    Rupees = Rupees & " Rupees"

    End Select

    Select Case Paise

    Case ""

    Paise = ""

    Case "One"

    Paise = " and One Paisa"

    Case Else

    Paise = " and " & Paise & " Paise"

    End Select

    SpellNumbers = 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. *

  • 7/28/2019 Conversion of Indian Rupees in Numbers to Text

    6/23

    '*********************************************

    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"

  • 7/28/2019 Conversion of Indian Rupees in Numbers to Text

    7/23

    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

    Solution no. 3

    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

  • 7/28/2019 Conversion of Indian Rupees in Numbers to Text

    8/23

    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)

  • 7/28/2019 Conversion of Indian Rupees in Numbers to Text

    9/23

    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 "

  • 7/28/2019 Conversion of Indian Rupees in Numbers to Text

    10/23

    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)

  • 7/28/2019 Conversion of Indian Rupees in Numbers to Text

    11/23

    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

  • 7/28/2019 Conversion of Indian Rupees in Numbers to Text

    12/23

    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

  • 7/28/2019 Conversion of Indian Rupees in Numbers to Text

    13/23

    Here is a function I gave some time ago that caters for Rupees, Lakhs,

    Crore and Paise. To call it, enter something like

    =SpellNumber(115) in a cell

    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 * 100000Count = 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 + 1Loop

    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

  • 7/28/2019 Conversion of Indian Rupees in Numbers to Text

    14/23

    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 CroresCase "": 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 RupeesCase "": 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

  • 7/28/2019 Conversion of Indian Rupees in Numbers to Text

    15/23

    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

  • 7/28/2019 Conversion of Indian Rupees in Numbers to Text

    16/23

    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

  • 7/28/2019 Conversion of Indian Rupees in Numbers to Text

    17/23

    Solution no. 4

    Open a new excel file and press Alt + F11 to open Visual Basic Editor and from the top menu bar select

    Insert->Module, it will add a new module. now copy the below VBScript and paste it into the module.

    '-------------------------- VBScript Starts --------------------------Option Explicit

    ' Function for conversion of a Currency to words

    ' Parameter - accept a Currency

    ' Returns the number in words format

    '*************************************

    Function CurrencyToWord(ByVal MyNumber)

    Dim Temp

    Dim Rupees, Paisa As StringDim DecimalPlace, iCount

    Dim Hundreds, Words As String

    ReDim Place(9) As String

    Place(0) = " Thousand "

    Place(2) = " Lakh "

    Place(4) = " Crore "

    Place(6) = " Arab "

    Place(8) = " Kharab "

    On Error Resume Next

    ' Convert MyNumber to a string, trimming extra spaces.

    MyNumber = Trim(Str(MyNumber))

    ' Find decimal place.

    DecimalPlace = InStr(MyNumber, ".")

    ' If we find decimal place...

    If DecimalPlace > 0 Then

    ' Convert Paisa

    Temp = Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2)

    Paisa = " and " & ConvertTens(Temp) & " Paisa"

    ' Strip off paisa from remainder to convert.

    MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))

    End If

    ' Convert last 3 digits of MyNumber to ruppees in word.

    Hundreds = ConvertHundreds(Right(MyNumber, 3))

    ' Strip off last three digits

  • 7/28/2019 Conversion of Indian Rupees in Numbers to Text

    18/23

    MyNumber = Left(MyNumber, Len(MyNumber) - 3)

    iCount = 0

    Do While MyNumber ""

    'Strip last two digits

    Temp = Right(MyNumber, 2)

    If Len(MyNumber) = 1 Then

    Words = ConvertDigit(Temp) & Place(iCount) & Words

    MyNumber = Left(MyNumber, Len(MyNumber) - 1)

    Else

    Words = ConvertTens(Temp) & Place(iCount) & Words

    MyNumber = Left(MyNumber, Len(MyNumber) - 2)

    End If

    iCount = iCount + 2

    Loop

    CurrencyToWord = "Ruppees " & Words & Hundreds & Paisa & " Only."

    End Function

    ' Conversion for hundreds

    '*************************************

    Private Function ConvertHundreds(ByVal MyNumber)

    Dim Result As String

    ' Exit if there is nothing to convert.

    If Val(MyNumber) = 0 Then Exit Function

    ' Append leading zeros to number.

    MyNumber = Right("000" & MyNumber, 3)

    ' Do we have a hundreds place digit to convert?

    If Left(MyNumber, 1) "0" Then

    Result = ConvertDigit(Left(MyNumber, 1)) & " Hundreds "

    End If

    ' Do we have a tens place digit to convert?

    If Mid(MyNumber, 2, 1) "0" Then

    Result = Result & ConvertTens(Mid(MyNumber, 2))

    Else

    ' If not, then convert the ones place digit.

    Result = Result & ConvertDigit(Mid(MyNumber, 3))

    End If

  • 7/28/2019 Conversion of Indian Rupees in Numbers to Text

    19/23

    ConvertHundreds = Trim(Result)

    End Function

    ' Conversion for tens

    '*************************************

    Private Function ConvertTens(ByVal MyTens)

    Dim Result As String

    ' Is value between 10 and 19?

    If Val(Left(MyTens, 1)) = 1 Then

    Select Case Val(MyTens)

    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

    ' .. otherwise it's between 20 and 99.

    Select Case Val(Left(MyTens, 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

    ' Convert ones place digit.

    Result = Result & ConvertDigit(Right(MyTens, 1))

    End If

    ConvertTens = Result

    End Function

  • 7/28/2019 Conversion of Indian Rupees in Numbers to Text

    20/23

    Private Function ConvertDigit(ByVal MyDigit)

    Select Case Val(MyDigit)

    Case 1: ConvertDigit = "One"

    Case 2: ConvertDigit = "Two"

    Case 3: ConvertDigit = "Three"

    Case 4: ConvertDigit = "Four"

    Case 5: ConvertDigit = "Five"

    Case 6: ConvertDigit = "Six"

    Case 7: ConvertDigit = "Seven"

    Case 8: ConvertDigit = "Eight"

    Case 9: ConvertDigit = "Nine"

    Case Else: ConvertDigit = ""

    End Select

    End Function

    '-------------------------- VBScript Ends --------------------------

    now save the excel file and close the Visual Basic editor and come to the spreadsheet mode, now its

    time to test the script...

    In any cell of the spreadsheet now you can use the below function to convert digits to number...

    =CurrencyToWord(123)

    Result = Rupees one hundred and twenty three only

    you can give a cell reference at the place of 123 like:

    =CurrencyToWord(A2)

    so it will convert whatever digit is written in the cell A2.

  • 7/28/2019 Conversion of Indian Rupees in Numbers to Text

    21/23

    Solution 5.( foreign currency dollors and cents)

    Press ALT+F11 to start the Visual Basic Editor.

    On the Insert menu, click Module.

    Type the following code into the module sheet.

    Option Explicit

    'Main Function

    Function SpellNumber(ByVal MyNumber)

    Dim Dollars, Cents, 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 cents and set MyNumber to dollar amount.

    If DecimalPlace > 0 Then

    Cents = 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 Dollars = Temp & Place(Count) & Dollars

    If Len(MyNumber) > 3 Then

    MyNumber = Left(MyNumber, Len(MyNumber) - 3)

    Else

    MyNumber = ""

    End If

    Count = Count + 1

    Loop

    Select Case Dollars

    Case ""

    Dollars = "No Dollars"

    Case "One"

    Dollars = "One Dollar"

  • 7/28/2019 Conversion of Indian Rupees in Numbers to Text

    22/23

    Case Else

    Dollars = Dollars & " Dollars"

    End Select

    Select Case Cents

    Case ""

    Cents = " and No Cents"

    Case "One"

    Cents = " and One Cent"

    Case Else

    Cents = " and " & Cents & " Cents"

    End Select

    SpellNumber = Dollars & Cents

    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"

  • 7/28/2019 Conversion of Indian Rupees in Numbers to Text

    23/23

    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