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. 


Thread Tools  Display Modes 
#1




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




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  


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 07:55 PM 