Thursday, September 3, 2009

How to Save User Defined Function (SpellNumber) in Excel to work with it on all workbooks? (By One OF MY FRIEND --NB--)

Well all you have to do is to follow following steps;
Step-1: open a new file, open the VBA Module by pressing Atl-F11 and past the code for converting Number into Text (Words), simply save this file as Add-Ins, when you will try to save the file, you have to select the file type and in file types u will see two options, one is for Excel 97-2003 as Add-Ins 97-2003 and other option for Excel 2007, with only name as Add-Ins, all you have to do is to select that simple Add-In option and save the file with the name u like to (I saved it as “SpellNumber” easy for me to remember). After saving it close the VBA Module by pressing Alt-
Step-2: Go and open new excel workbook, select the Office>Select Option>Select Add Ins, you will see in the list of Add Ins, there is an Add In (SpellNumber, with Owner Name as yours), select that Add In & Press Go under the bottom where mentioned (Manage [Com Add Ins]-Go), select this Go.
Step-3: A new popup block will open which shows the already available Add-Ins including the new SpellNumber with an unchecked box, check the box and close this popup block.
Step-4: Now write a figure anywhere in any cell and select the Formulas, in Formula Library select the Insert Function command and a list of functions will appear, select from the category list the User Define Functions and you will find your function “SpellNumber”, select the function and got the result.
Enjoy the Solution.


For more details see below :

User-Defined Functions in ExcelExcel allows you to create custom functions, called "User Defined Functions" (UDF's) that can be used the same way you would use SUM(), VLOOKUP, or other built-in Excel functions. The Excel user who wishes to use advanced mathematics or perform text manipulation is often seriously disappointed by Excel's limited library of formulas and functions. A UDF is simply a function that you create yourself with VBA. This blog will help you get started with UDFs and show a couple of examples.
Sample UDFThe following is a sample that is a good candidate for a UDF:
Function CtoF(Centigrade) CtoF = Centigrade * 9 / 5 + 32End Function

Wednesday, September 2, 2009

Convert a numeric value into words in MSEXCEL

Open EXCEL
press Alt+F11

Go to Insert>Module
paste the code below
Press Alt+Q
save it
go to excel sheet insert formula
SpellNumber()

put the value in (32) to convert to word

NOTE
its in Doller/cents
if you like to change the currency
simply search and replace
Dollars with []
cents with []

on request of a friend
if your currenty value is high

replace
Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _ "00", 2))
With
Cents = GetHundreds(Left(Mid(MyNumber, DecimalPlace + 1) & _"000", 3))

CODE
Start copy below the line
------------------------------------------------

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


------------------------------------------------
end copy above the line(dont copy the line)