+ Reply to Thread
Results 1 to 2 of 2

Currency to Text

  1. #1
    Registered User
    Join Date
    02-21-2006
    Posts
    3

    Currency to Text

    I found this function on net,

    It write " Two Dollars And Three Cents"

    I like to change it to this " Dollars Two And Cent Three Only"

    Any one can help me............

    Function ConvertCurrencyToEnglish (ByVal MyNumber)
    Dim Temp
    Dim Dollars, Cents
    Dim DecimalPlace, Count

    ReDim Place(9) As String
    Place(2) = " Thousand "
    Place(3) = " Million "
    Place(4) = " Billion "
    Place(5) = " Trillion "

    ' 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 cents
    Temp = Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2)
    Cents = ConvertTens(Temp)

    ' Strip off cents from remainder to convert.
    MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
    End If

    Count = 1
    Do While MyNumber <> ""
    ' Convert last 3 digits of MyNumber to English dollars.
    Temp = ConvertHundreds(Right(MyNumber, 3))
    If Temp <> "" Then Dollars = Temp & Place(Count) & Dollars
    If Len(MyNumber) > 3 Then
    ' Remove last 3 converted digits from MyNumber.
    MyNumber = Left(MyNumber, Len(MyNumber) - 3)
    Else
    MyNumber = ""
    End If
    Count = Count + 1
    Loop

    ' Clean up dollars.
    Select Case Dollars
    Case ""
    Dollars = "No Dollars"
    Case "One"
    Dollars = "One Dollar"
    Case Else
    Dollars = Dollars & " Dollars"
    End Select

    ' Clean up cents.
    Select Case Cents
    Case ""
    Cents = " And No Cents"
    Case "One"
    Cents = " And One Cent"
    Case Else
    Cents = " And " & Cents & " Cents"
    End Select

    ConvertCurrencyToEnglish = Dollars & Cents
    End Function



    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)) & " Hundred "
    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

    ConvertHundreds = Trim(Result)
    End Function



    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



    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

  2. #2
    Bob Phillips
    Guest

    Re: Currency to Text

    Option Explicit

    Function ConvertCurrencyToEnglish(ByVal MyNumber)
    Dim Temp
    Dim Dollars, Cents
    Dim DecimalPlace, Count

    ReDim Place(9) As String
    Place(2) = " Thousand "
    Place(3) = " Million "
    Place(4) = " Billion "
    Place(5) = " Trillion "

    ' 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 cents
    Temp = Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2)
    Cents = ConvertTens(Temp)

    ' Strip off cents from remainder to convert.
    MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
    End If

    Count = 1
    Do While MyNumber <> ""
    ' Convert last 3 digits of MyNumber to English dollars.
    Temp = ConvertHundreds(Right(MyNumber, 3))
    If Temp <> "" Then Dollars = Temp & Place(Count) & Dollars
    If Len(MyNumber) > 3 Then
    ' Remove last 3 converted digits from MyNumber.
    MyNumber = Left(MyNumber, Len(MyNumber) - 3)
    Else
    MyNumber = ""
    End If
    Count = Count + 1
    Loop

    ' Clean up dollars.
    Select Case Dollars
    Case ""
    Dollars = "No Dollars"
    Case "One"
    Dollars = "One Dollar"
    Case Else
    Dollars = Dollars & " Dollars"
    End Select

    ' Clean up cents.
    Select Case Cents
    Case ""
    Cents = " And No Cents"
    Case "One"
    Cents = " And One Cent"
    Case Else
    Cents = " And " & Cents & " Cents"
    End Select

    ConvertCurrencyToEnglish = Dollars & Cents & " only"
    End Function



    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)) & " Hundred "
    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

    ConvertHundreds = Trim(Result)
    End Function



    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



    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




    --

    HTH

    Bob Phillips

    (remove nothere from the email address if mailing direct)

    "mytipi" <[email protected]> wrote in
    message news:[email protected]...
    >
    > I found this function on net,
    >
    > It write " Two Dollars And Three Cents"
    >
    > I like to change it to this " Dollars Two And Cent Three Only"
    >
    > Any one can help me............
    >
    > Function ConvertCurrencyToEnglish (ByVal MyNumber)
    > Dim Temp
    > Dim Dollars, Cents
    > Dim DecimalPlace, Count
    >
    > ReDim Place(9) As String
    > Place(2) = " Thousand "
    > Place(3) = " Million "
    > Place(4) = " Billion "
    > Place(5) = " Trillion "
    >
    > ' 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 cents
    > Temp = Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2)
    > Cents = ConvertTens(Temp)
    >
    > ' Strip off cents from remainder to convert.
    > MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
    > End If
    >
    > Count = 1
    > Do While MyNumber <> ""
    > ' Convert last 3 digits of MyNumber to English dollars.
    > Temp = ConvertHundreds(Right(MyNumber, 3))
    > If Temp <> "" Then Dollars = Temp & Place(Count) & Dollars
    > If Len(MyNumber) > 3 Then
    > ' Remove last 3 converted digits from MyNumber.
    > MyNumber = Left(MyNumber, Len(MyNumber) - 3)
    > Else
    > MyNumber = ""
    > End If
    > Count = Count + 1
    > Loop
    >
    > ' Clean up dollars.
    > Select Case Dollars
    > Case ""
    > Dollars = "No Dollars"
    > Case "One"
    > Dollars = "One Dollar"
    > Case Else
    > Dollars = Dollars & " Dollars"
    > End Select
    >
    > ' Clean up cents.
    > Select Case Cents
    > Case ""
    > Cents = " And No Cents"
    > Case "One"
    > Cents = " And One Cent"
    > Case Else
    > Cents = " And " & Cents & " Cents"
    > End Select
    >
    > ConvertCurrencyToEnglish = Dollars & Cents
    > End Function
    >
    >
    >
    > 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)) & " Hundred "
    > 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
    >
    > ConvertHundreds = Trim(Result)
    > End Function
    >
    >
    >
    > 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
    >
    >
    >
    > 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
    >
    >
    > --
    > mytipi
    > ------------------------------------------------------------------------
    > mytipi's Profile:

    http://www.excelforum.com/member.php...o&userid=31784
    > View this thread: http://www.excelforum.com/showthread...hreadid=515099
    >




+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

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

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1