Microsoft Office Forums

Go Back   Microsoft Office Forums > >

Reply
 
Thread Tools Display Modes
  #1  
Old 09-12-2011, 12:53 AM
KIM SOLIS KIM SOLIS is offline Convert numeric value into words Windows XP Convert numeric value into words Office 97
Novice
Convert numeric value into words
 
Join Date: Sep 2011
Posts: 29
KIM SOLIS is on a distinguished road
Default Convert numeric value into words

Hi,



Please advice and show how to convert a numeric value into words as per attached Query103.xls. For a large file data and if same is manually done by the encoder it is highly prone to errors. Can Excel do the auto-conversion of a numeric value into words? Am sure it can but I'm clueless.

Thanks,

Kim
Attached Files
File Type: xls Query103-Value to Words.xls (18.0 KB, 11 views)
Reply With Quote
  #2  
Old 09-12-2011, 05:13 AM
Catalin.B Catalin.B is offline Convert numeric value into words Windows Vista Convert numeric value into words Office 2007
Expert
 
Join Date: May 2011
Location: Iaşi, România
Posts: 386
Catalin.B is on a distinguished road
Default

All code and text from below here is the work of Microsoft.

(means you could find it yourself.. )
Code:
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"

              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"

                  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
If you want to show "/100" at the end of the spell, replace
This " and No Cents" in line 101 with: "and 0/100"
" and One Cent" with " and 1/100" line 105

" Cents" with " /100"-line 109
Attached Files
File Type: xlsm Copie a Query103-Value to Words.xlsm (21.1 KB, 12 views)
Reply With Quote
  #3  
Old 09-12-2011, 05:30 AM
Colin Legg's Avatar
Colin Legg Colin Legg is offline Convert numeric value into words Windows 7 32bit Convert numeric value into words Office 2010 32bit
Expert
 
Join Date: Jan 2011
Location: UK
Posts: 369
Colin Legg will become famous soon enough
Default

There's a non-VBA approach outlined here:

http://www.contextures.com/NumsToWords_No_VBA.zip
__________________
Colin

RAD Excel Blog
Reply With Quote
  #4  
Old 09-12-2011, 02:27 PM
KIM SOLIS KIM SOLIS is offline Convert numeric value into words Windows XP Convert numeric value into words Office 97
Novice
Convert numeric value into words
 
Join Date: Sep 2011
Posts: 29
KIM SOLIS is on a distinguished road
Default

Hi Catalin,

Great. It works just fine. Thanks again for this. But how about if the numeric value is not a currency, but just a generic value, say a land area. How then do I remove the suffix, "Dollars" in the event presented?

Will appreciate your further advice though i consider this thread now as basically solved.

My appreciation,

Kim

Last edited by KIM SOLIS; 09-12-2011 at 02:32 PM. Reason: misspelling
Reply With Quote
  #5  
Old 09-12-2011, 02:31 PM
KIM SOLIS KIM SOLIS is offline Convert numeric value into words Windows XP Convert numeric value into words Office 97
Novice
Convert numeric value into words
 
Join Date: Sep 2011
Posts: 29
KIM SOLIS is on a distinguished road
Default

Hi Colin,

Just as great a solution you shared. That was simpler and fine with my requirements. That was a great help indeed. Thanks .This thread then is solved.

Kim
Reply With Quote
  #6  
Old 09-12-2011, 10:53 PM
Catalin.B Catalin.B is offline Convert numeric value into words Windows Vista Convert numeric value into words Office 2007
Expert
 
Join Date: May 2011
Location: Iaşi, România
Posts: 386
Catalin.B is on a distinguished road
Default

Quote:
Originally Posted by KIM SOLIS View Post
Hi Catalin,
How then do I remove the suffix, "Dollars" in the event presented?

Kim
in the above code, change lines 83, 87, 91 for Dollars, and 101, 105, 109 for Cents, as needed...
Reply With Quote
Reply



Similar Threads
Thread Thread Starter Forum Replies Last Post
Convert numeric value into words [How To] Generate Alpha Numeric Values in Excel 2010 stnicholas81 Excel 1 07-25-2011 01:31 AM
Why Words doesn’t show the style of the selected words automatically???? Jamal NUMAN Word 0 04-14-2011 03:20 PM
Convert numeric value into words Validation for length and numeric type chamsy Excel 1 10-22-2010 07:31 AM
Convert numeric value into words Spaced out words? microsoftmonkey Outlook 1 11-24-2008 09:29 AM
Convert numeric value into words Spreadsheet for words Rosie Office 3 06-15-2005 02:27 PM

Other Forums: Access Forums

All times are GMT -7. The time now is 05:30 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Search Engine Optimisation provided by DragonByte SEO (Lite) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
MSOfficeForums.com is not affiliated with Microsoft