A Microsoft Word forum. Microsoft Office Word Forum - WordBanter

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

Go Back   Home » Microsoft Office Word Forum - WordBanter forum » Microsoft Word Newsgroups » Microsoft Word Help
Site Map Home Register Authors List Search Today's Posts Mark Forums Read Web Partners

Convert numeric value into english word



 
 
Thread Tools Display Modes
  #1  
Old August 25th 05, 12:27 PM
RKS
external usenet poster
 
Posts: n/a
Default Convert numeric value into english word

Pl tell me How to create function to convert numeric value in english word
format.
Ex. 456.23 ( four hundred fiftty six and paise twenty three).
Pl give me permananent solution. every time when we open word or excel its.
work.

Thanks in advance.
R.K.Sharma

Ads
  #2  
Old August 25th 05, 07:33 PM
Doug Robbins
external usenet poster
 
Posts: n/a
Default

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 "

MyNumber = Trim(Str(MyNumber))

DecimalPlace = InStr(MyNumber, ".")
If DecimalPlace 0 Then
Temp = Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2)
Cents = ConvertTens(Temp)
MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
End If
Count = 1
Do While MyNumber ""
'convert last 3 digits to English Dollars
Temp = ConvertHundreds(Right(MyNumber, 3))
If Temp "" Then Dollars = Temp & Place(Count) & Dollars
If Len(MyNumber) 3 Then
'remove last 3 comverted digits
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
Else
MyNumber = ""
End If
Count = Count + 1
Loop

'clean up dollars
Select Case Dollars
Case ""
Dollars = "NoDollars"
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
If Val(MyNumber) = 0 Then Exit Function

'append leading zeros to number
MyNumber = Right("000" & MyNumber, 3)

'do we have hundreds place digit to convert?
If Left(MyNumber, 1) "0" Then
Result = ConvertDigit(Left(MyNumber, 1)) & " Hundred "
End If

'do we have 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
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
================================================== =========
Sub TestAboveFunction()
Dim MyNumber
MyNumber = 551521896.32
MsgBox ConvertCurrencyToEnglish(ByVal MyNumber)
End Sub
================================================== =========


Or, here's another way.

Amount = Selection.Text

Dollars = Int(Val(Amount))

cents = Int((Val(Amount) - Dollars) * 100)

Selection.Delete

Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _

PreserveFormatting:=False

Selection.TypeText Text:="=" & Dollars & " \* CardText \* Caps"

Selection.MoveRight Unit:=wdCharacter, Count:=2

Selection.TypeText Text:=" Dollars and "

Macro to convert number to dollars and cents

Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, _

PreserveFormatting:=False

Selection.TypeText Text:="=" & cents & " \* CardText \* Caps"

Selection.MoveRight Unit:=wdCharacter, Count:=2

Selection.TypeText Text:=" cents"

ActiveWindow.View.ShowFieldCodes = Not ActiveWindow.View.ShowFieldCodes

ActiveWindow.View.ShowFieldCodes = Not ActiveWindow.View.ShowFieldCodes

ActiveDocument.Fields.Update


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
"RKS" wrote in message
...
Pl tell me How to create function to convert numeric value in english word
format.
Ex. 456.23 ( four hundred fiftty six and paise twenty three).
Pl give me permananent solution. every time when we open word or excel
its.
work.

Thanks in advance.
R.K.Sharma



 




Thread Tools
Display Modes

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

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
The WordPerfect "Reveal Codes" method is so much easier to use. Torden Microsoft Word Help 8 April 19th 10 07:50 PM
Word2000 letterhead merge BAW Mailmerge 3 June 25th 05 01:17 PM
Underscore (_) will not always display in RTF files (Word 2002). David A Edge Microsoft Word Help 6 June 14th 05 10:39 AM
Making Word do something that Wordperfect can do NarniaUK New Users 4 May 1st 05 10:44 PM
how to convert wordperfect 5.0 floppy files to word pcoelho Microsoft Word Help 2 February 17th 05 06:55 PM


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


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Copyright 2004-2014 Microsoft Office Word Forum - WordBanter.
The comments are property of their posters.