Saltar al contenido

auto_open

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

Featured Replies

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

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
  • Autor

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.