View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
Tom Ogilvy Tom Ogilvy is offline
external usenet poster
 
Posts: 27,285
Default Macro Instability

Sub StableExample()
Worksheets("Sheet1").FormulaR1C1 = "=Sheet2!R8C10"
Worksheets("Sheet2").Value = 0
End Sub

Make your macros like this andyou should have no problems

If you have attached a macro to a shape such as a rectangle: in the example
"Rectangle 3" another approach is to do things relative to the position of
the rectangle. You can use application.Caller to get the name of the
rectangle (then if you rename it, the code should still work or you can
assign more than one rectangle to the macro and make it operate in a
relative fashion.

Sub Rectangle3_Click()
Dim rect3 as Rectangle
sName = Application.Caller
set rect3 = Activesheet.Rectangles(sName)
set rng = rect3.TopLeftCell
rng.offset(0,-1).FormulaR1C1 = "=Sheet2!R8C10"
End Sub


--
Regards,
Tom Ogilvy



"Nat" wrote in message
...
I have just built a spreadsheet that includes about 32 macros and they

don't
always seem to function correctly. I essentially have built a game where

when
an icon is clicked a value located in another worksheet will appear. Thus,

I
have built a number of macros that are assigned to various icons, a value
appears. The macros use apply a formula, e.g. "=," to locate the value on

the
other worksheet. Some macros work fine all of the time while others

produce
odd results or require double clicks of the icon to produce the desired
value).

I am hoping to identify whether these problems are correctable through
debugging the programming or if MSExcel macros are inherently unstable or
prone to errors. Additionally, is this apparent instability associated

with
the total number of macros I am attempting to use in this workbook (there

are
a lot). The responses I receive here will aid me in approaching a

resolution
to the problem, e.g. spend the day debugging (assuming the system will

remain
stable once it is debugged) or accept the fact that if I insist on using

so
many macros that the system will never function correctly.

Additionally, I am including the text of one macro that works correctly

(Sub
Box1) and another that does not (Sub Box5). They essentially do the same
tasks, but for different icons. They were both created using the "record
macro" tool. Given that the macro text pattern is different in each

example,
I suspect the "record macro" tool simply makes errors in recognizing

actions.
Assuming the MSExcel macro system is generally stable once macros are
correctly written, I am contemplating just copying and pasting the

successful
macro (with appropiate changes) into all of the flawed macro routines.
However, if the system is unstable then doing this would just be a waste

of
time.

Thanks.

Sub Box1()
'
' Box1 Macro
' Macro recorded 2/24/2006 by Nat Pope
'

'
Range("C8").Select
ActiveCell.FormulaR1C1 = "=Sheet1!R[-4]C[10]"
Sheets("Sheet1").Select
Range("L4").Select
ActiveCell.FormulaR1C1 = "0"
Sheets("Sheet2").Select
Range("C8").Select
End Sub


Sub Box5()
'
' Box5 Macro
' Macro recorded 2/25/2006 by Nat Pope
'

'
ActiveCell.FormulaR1C1 = "=Sheet1!R[-8]C[10]"
Sheets("Sheet1").Select
Range("L8").Select
ActiveCell.FormulaR1C1 = "0"
Sheets("Sheet2").Select
End Sub