Creating a function

  • Thread starter Thread starter Todd Huttenstine
  • Start date Start date
T

Todd Huttenstine

Below is a function I am working with to calculate
commissions. How do I get it to where when I click on a
cell in Excel, and then go to insert function, how do I
make it to where I can select that function from in
there? Right now I dont see it in there.

Option Explicit
Dim SalesQ As Currency
Dim CalculateCommission As Currency
Public Function CalComm() As Currency
CalculateCommission = SalesQ * (1.5 / 100)
End Function

Public Sub main()
SalesQ = InputBox("Enter Sales Amount")
Call CalComm
MsgBox ("The commission amount is: $" &
CalculateCommission)
End Sub
 
You should be able to see it in the function category Userd Defined
If not, post again

--

Kind Regards,

Niek Otten

Microsoft MVP - Excel
 
Todd,

Where have you stored it? It should be in a general module, not a worksheet
module or ThisWorkbook.

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)
 
Ah there we go, thank you. I had it in the worksheet
module. I put it in a regular module and now its in User
Defined, however when I try to insert it in cell A1, it
does nothing. when I am inserting it in cell A1 it says
this function takes no arguments. So how would I make it
take argument so that whatever is in cell A1, it will use
that value as the variable instead of the input box?
 
--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)
 
Todd,

If you want to put the function in A1, it cannot use a value in A1, that's
a circular reference. A function in a cell can only reference another cell.
SO if you want to pick up SalesQ from a cell, the function would look like
this

Public Function CalComm(SalesQ) As Currency
CalComm = SalesQ * (1.5 / 100)
End Function

and if A1 held the SalesQ figure, the function would go in A2 or some other
cell and would look like

=CalComm(A1)

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)
 
When I do that Im getting #VALUE error

-----Original Message-----
Todd,

If you want to put the function in A1, it cannot use a value in A1, that's
a circular reference. A function in a cell can only reference another cell.
SO if you want to pick up SalesQ from a cell, the function would look like
this

Public Function CalComm(SalesQ) As Currency
CalComm = SalesQ * (1.5 / 100)
End Function

and if A1 held the SalesQ figure, the function would go in A2 or some other
cell and would look like

=CalComm(A1)

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)




.
 
Option Explicit
Dim SalesQ As Currency
Dim CalculateCommission As Currency
Public Function CalComm() As Currency
CalculateCommission = SalesQ * (1.5 / 100)
End Function

Public Function main(SalesQ as Double) as string
Call CalComm
MsgBox ("The commission amount is: $" &
CalculateCommission)
End Sub



The above is your sub re-written (quickly) as a function. If it doesn't
work post back.
 
Todd,

That probably means that you don't have a number in A1.

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)
 
I do have a number in there. Its 550.
-----Original Message-----
Todd,

That probably means that you don't have a number in A1.

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)




.
 
Todd,

Then I am confused, because when I use 550, A2 returns 8.25.

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)
 
No still didnt. I took the msgbox out since I dont want
that to display if I am going to use it in a cell. it
shows "" in the cell.
 
Se what I want is to where I can insert that function in
cell A2 and reference cell A1 where the number is. Then
when I click the OK button after I select cell A1 (or
whatever cell I want to reference), I want the answer to
be put in the cell where I inserted the function(in this
case it would be cell A2.).

using the below code..., when I run sub main, it uses an
input box and gives me the correct answer, but instead of
using an input box, I would rather just make it like any
other function where I reference cells.

Option Explicit
Dim SalesQ As Currency
Dim CalculateCommission As Currency

Public Function CalComm() As Currency
CalculateCommission = SalesQ * (1.5 / 100)
End Function

Public Sub main()
SalesQ = InputBox("Enter Sales Amount")
Call CalComm
MsgBox ("The commission amount is: $" &
CalculateCommission)
End Sub



Thanx

Todd Huttenstine
 
hey Bob,

I got it to work. Below is what I was doing which was
causing the error...
Public Function CalComm() As Currency
CalComm = SalesQ * (1.5 / 100)
End Function

I failed to put SalesQ in the parenthesis.

Thank you and to everyone else who helped me. I seem to
be finding myself spending allot of time on obvious
mistakes.

Thanx again

Todd
 
Just a note, and a guess. Make sure the variable of the answer is the same
name as your function. It appears that you keep changing them.

In your function, "CalComm" and "CalculateCommission" are different names.
Public Function CalComm() As Currency
CalculateCommission = SalesQ * (1.5 / 100)
End Function


For example,

Public Function CalComm(SalesQ) As Currency
CalComm = SalesQ * 0.015 '(1.5%)
End Function


Just thought I'd mention it in case you didn't catch it from the other
posts.
 
Well we would never have guessed that unless you posted the code, so well
done for sorting it yourself. It is still the best way to learn<g>

B ob
 
Back
Top