PC Review


Reply
Thread Tools Rate Thread

Currency to Text

 
 
mytipi
Guest
Posts: n/a
 
      21st Feb 2006

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 With Quote
 
 
 
 
Bob Phillips
Guest
Posts: n/a
 
      21st Feb 2006
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" <(E-Mail Removed)> wrote in
message news:(E-Mail Removed)...
>
> 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 With Quote
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Currency to text Beagle1927 Microsoft Access Queries 5 31st Oct 2006 05:21 AM
Text box will not show Currency when no information is in text box Russ via AccessMonster.com Microsoft Access Form Coding 3 10th Nov 2005 10:15 PM
Text box will not show Currency when no information is in text box Russ via AccessMonster.com Microsoft Access Form Coding 1 7th Nov 2005 06:25 PM
Conversion from currency value to currency text format gdselva Microsoft Excel Programming 2 18th Aug 2004 10:06 PM
Force text that looks like currency to remain text Laurence Lombard Microsoft Excel Misc 2 3rd Jun 2004 11:57 PM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 08:46 AM.