Saltar al contenido

auto_open


Recommended Posts

publicado

Buenas tardes y feliz año a todos,

He creado la siguiente macro auto_open() en excel 2010:

Sub auto_open()

Application.DisplayFullScreen = True

Application.DisplayStatusBar = False

ActiveWindow.DisplayHeadings = False

ActiveWindow.DisplayGridlines = False

Application.DisplayFormulaBar = False

ActiveSheet.EnableOutlining = True

ActiveSheet.Protect Contents:=True, UserInterfaceOnly:=True

End Function

La coloco en modulo, tengo dos problemas:

1.-Al abrir el fichero excel sólo se ejecuta la macro en una hoja y no en todas como habría previsto.

2.-Al enviar este fichero a otros usuarios no se les ejecuta la macro auto_open, he observado que tienen una macro que se llama igual (auto_open), no sé si puede ser este el problema.

Espero que puedan ayudarme. Un saludo,

7-1-13 15-37 auto_open.rar

publicado

Hola,

Prueba hacerlo en el evento Open del ThisWorkbook..

Sobre el segundo punto posiblemente sea por que no tiene habilitadas las macros...

Un saludo

Invitado Gengis Khan
publicado

Hola:

No puede haber dos procedimientos con el mismo nombre, por lo que no puede haber dos procedimientos auto_open.

Yo soy partidario de utilizar el evento Workbook_Open en el módulo ThisWorkbook en lugar de la macro auto_open que ya está obsoleta.

En tu macro tienes instrucciones a nivel de aplicación, ventana y hoja activa, y dado que solo se ejecutan al abrir el libro las instrucciones que hacen referencia a ventana y hoja activa solo afectarán a la primera hoja que se muestre.

Para que esas instrucciones actúen en cada hoja coloca este código en ThisWorkbook:



[COLOR=#006400]Private Sub Workbook_Open()[/COLOR]
Application.DisplayFullScreen = True
Application.DisplayStatusBar = False
Application.DisplayFormulaBar = False
[COLOR=#006400]End Sub[/COLOR]


[COLOR=#006400]Private Sub Workbook_SheetActivate(ByVal Sh As Object)[/COLOR]
ActiveWindow.DisplayHeadings = False
ActiveWindow.DisplayGridlines = False
ActiveSheet.EnableOutlining = True
ActiveSheet.Protect Contents:=True, UserInterfaceOnly:=True
[COLOR=#006400]End Sub[/COLOR]


[COLOR=#006400]Private Sub Workbook_BeforeClose(Cancel As Boolean)[/COLOR]
Application.DisplayFullScreen = False
Application.DisplayStatusBar = True
Application.DisplayFormulaBar = True
[COLOR=#006400]End Sub[/COLOR]


[/CODE]

Saludos

publicado

Hola Jose71,

Tienes razón, con el evento ThisWorkbook soluciono el primer problema.

Muchas gracias por tu ayuda.

Saludos,

- - - - - Mensaje combinado - - - - -

Muchísimas gracias Gengis,

Con este código en ThisWorkbook soluciono los dos problemas, por fin se ejecuta la macro en cada una de las hojas y no sólo en la que dejo activa al cerrar el .xlsm.

Es simplemente perfecto :adoration:

Gracias otra vez.

Saludos.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.