ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   set cell value (https://www.excelbanter.com/excel-programming/401651-set-cell-value.html)

Edgar[_2_]

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

JMB

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


Edgar[_2_]

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