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!
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!