set cell value

E

Edgar

I'm very rusty in Basic and have no Visual Basic experience! I want to use a
function to reset a stop loss target if needed. The spreadsheet has a cell
with “Day’s High†as a dollar value, “Old Stop Loss†also as a dollar value
and I will pass in a float with a stop loss percent (for now—maybe later it
will be a cell value).

I want to pass in a Currency type (daysHigh), a Variant (stopRate, a Float),
and a reference to a cell (oldStop) from which I will derive the old stop
loss value, and after some calculations, possibly change the cell’s value to
the new stop loss value.

I will try this function call:

=ResetStopLoss(AE6, BB6, 0.15)
thus:
ResetStopLoss(40, 58, .15)

code:

Function ResetStopLoss(oldStop As Range, daysHigh As Currency, stopRate)
'
' reset stop loss target if needed for Fidelity held position
' 24 Nov 2007 by Ed Musgrove
If stopRate = 0 Then GoTo BailOut
potentialNewStop = daysHigh * (1 - stopRate)
oldStopValue = oldStop.Value
' using MsgBox (oldStopValue), I see that the above
' line works, so I know I'm getting a useful Range Object
MsgBox (oldStopValue)
If potentialNewStop > oldStopValue Then
MsgBox ("in here")
' the above message displays, I know I am getting to here
oldStop.Value = potentialNewStop
' the following does NOT display, the above line
MsgBox ("done here")
End If

MsgBox (oldStop.Value)
BailOut:
ResetStopLoss = Date
End Function

Any help will be greatly appreciated!
 
J

JMB

When called from a worksheet, functions can only return values. They don't
put values into other cells as I believe you are attempting.
 
E

Edgar

If I were writing in C++ I could pass the address of the cell and use a
pointer to modify the cell. As I recall, Basic has nothing similar. Does
anyone else have a solution or suggestion?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top