Home |
Search |
Today's Posts |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Fred,
I don't know what might have caused the change. However, the problem is to get it working now. I have assumed that these buttons are Forms buttons; not ActiveX Command Buttons. Therefore, save the OnAction for each of the buttons prior to moving the worksheet and then reset the OnAction in the new worksheet. The following code should do it. I have tested this in xl2007 and it appears to work satisfactorily. However, I will monitor the thread and feel free to get back to me if any problems. Sub PreserveOnAction() Dim shp As Shape Dim arrAction() Dim i As Long Dim j As Long With ActiveSheet 'Redim a 2 dimensional 1 based array 'with sufficient elements for all shapes ReDim arrAction(1 To _ .Shapes.Count, 1 To 2) For Each shp In .Shapes If shp.OnAction < "" Then i = i + 1 arrAction(i, 1) = shp.Name arrAction(i, 2) = shp.OnAction End If Next shp .Name = "Publication" .Move End With 'Publication will now be the active sheet With Sheets("Publication") 'Some shapes might not have an OnAction 'and some elements at the end of the array 'might be blank. 'Therefore use i as the upper limit when 'retrieving the data from the array. For j = 1 To i .Shapes(arrAction(j, 1)) _ .OnAction = arrAction(j, 2) Next j End With End Sub -- Regards, OssieMac |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
macro reference changes with filename | Excel Discussion (Misc queries) | |||
Using filename hyperlinks in Macros | Excel Programming | |||
Macros - Force execution using workbook_open | Excel Discussion (Misc queries) | |||
Reference in a filename.. | Excel Worksheet Functions | |||
macros execution problem | Excel Programming |