Problema con workbook.beforeclose()

07/09/2012 - 16:46 por Wix | Informe spam
Cuando abro el libro de Excel (2007) corre el evento

workbook_open()

..

For Each Cbar In Application.CommandBars
Cbar.Enabled = False
Next

.



lo cual tengo que volver atrás antes de cerrar el libro y por este motivo utilizo el evento:

workbook_beforeclose()

.

Sheets("Hoja1").Visible = True
Sheets("Hoja2").Visible = xlVeryHidden
Sheets("Hoja1").Select


Dim Cbar As CommandBar
For Each Cbar In Application.CommandBars
Cbar.Enabled = True
Next
Application.DisplayFullScreen = False
Application.DisplayFormulaBar = True
Application.DisplayStatusBar = True





Ahora comienza el problema, ya que cierra, guarda y todo lo que tiene que hacer, menos volver a aparecer el menú contextual.


En cambio, si creo una macro solo con el código:

Dim Cbar As CommandBar
For Each Cbar In Application.CommandBars
Cbar.Enabled = True
Next

que es el mismo que utilizo en el evento beforeclose, sí de vuelve a habilitar el menu contextual entre otros.

Acepto ayuda ya que no logro hacer funcionar por completo este evento para volver atrás el menu contextual.

Gracias.

Preguntas similare

Leer las respuestas

#1 Juan Español
10/09/2012 - 14:01 | Informe spam
Hola Wix:

Sin entrar a valorar línea a línea tu código...
¿Por qué no llamas a la macro en el evento workbook_beforeclose()
y así se ejecuta lo que tú quieres?

Saludos.-



"Wix" escribió en el mensaje de noticias
news:
Cuando abro el libro de Excel (2007) corre el evento

workbook_open()

..

For Each Cbar In Application.CommandBars
Cbar.Enabled = False
Next

.



lo cual tengo que volver atrás antes de cerrar el libro y por este motivo
utilizo el evento:

workbook_beforeclose()

.

Sheets("Hoja1").Visible = True
Sheets("Hoja2").Visible = xlVeryHidden
Sheets("Hoja1").Select


Dim Cbar As CommandBar
For Each Cbar In Application.CommandBars
Cbar.Enabled = True
Next
Application.DisplayFullScreen = False
Application.DisplayFormulaBar = True
Application.DisplayStatusBar = True





Ahora comienza el problema, ya que cierra, guarda y todo lo que tiene que
hacer, menos volver a aparecer el menú contextual.


En cambio, si creo una macro solo con el código:

Dim Cbar As CommandBar
For Each Cbar In Application.CommandBars
Cbar.Enabled = True
Next

que es el mismo que utilizo en el evento beforeclose, sí de vuelve a
habilitar el menu contextual entre otros.

Acepto ayuda ya que no logro hacer funcionar por completo este evento para
volver atrás el menu contextual.

Gracias.
Respuesta Responder a este mensaje
#2 Wix
10/09/2012 - 16:17 | Informe spam
Lo intento y comento lo sucedido.


Gracias.
Respuesta Responder a este mensaje
#3 Wix
14/09/2012 - 18:16 | Informe spam
Probé llamar a la función pero nada.

Llegué a la conclusión que el problema está en workbook.beforeclose() porque cuando llamo al código antes de cerrar pero fuera de beforeclose() no tiene inconvenientes e inlusive queda todo bien para cuando vuelvo a correr Excel.

Pensé que el problema era que no se ejecutaba la apertura de los menu, pero puse un mensaje dentro del bucle que cierra los menu y siempre me muestra el mensaje a modo de bandera.

Me quedé sin ideas así que intentaré solucionarlo creando un boton de cerrar y desde allí ejecuto el codigo.

Gracias.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida