![]() |
set cell value
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 €śDays 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 cells 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! -- -Edgar |
set cell value
When called from a worksheet, functions can only return values. They don't
put values into other cells as I believe you are attempting. "Edgar" wrote: 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 €śDays 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 cells 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! -- -Edgar |
set cell value
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? -- -Edgar "JMB" wrote: When called from a worksheet, functions can only return values. They don't put values into other cells as I believe you are attempting. |
All times are GMT +1. The time now is 12:41 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com