Re: al desactivar un libro que se cierre este

26/11/2005 - 18:25 por pac | Informe spam
Hola Hector agradezco tu ayuda. Lo he probado con Workbook_Activate y funciona. El libro se cierra, pero lo hago con Workbook_Deactivate y no lo cierra ademas de que cuando cierro el libro después, me dice que se ha producido un error en tiempo de ejecución con el método ‘Close’ del objeto Workbook. Aquí te pongo el código como lo he escrito, para que me digas qué no hago bien.
Muchas gracias por tu ayuda pa

Sub Workbook_Deactivate(
Dim Libro As Workboo
ThisWorkbook.Close SaveChanges:=Tru
End Su
Mi idea es hacer que cuando se deje el primer libro en segundo lugar ( o inactivo), porque esté ejecutando otro recien cargado, el primer libro se cierre
Nuevamente garcias por tu ayud

pac

Ver este tema: http://www.softwaremix.net/viewtopic-459202.htm

Enviado desde http://www.softwaremix.net
 

Leer las respuestas

#1 Héctor Miguel
27/11/2005 - 03:56 | Informe spam
hola, pac !

... he probado con Workbook_Activate y funciona. El libro se cierra, pero... con Workbook_Deactivate y no lo cierra
ademas... cuando cierro el libro despues, me dice... error en tiempo de ejecucion con el metodo ‘Close’ del objeto Workbook.
... el codigo como lo he escrito... que no hago bien...
Sub Workbook_Deactivate()
Dim Libro As Workbook
ThisWorkbook.Close SaveChanges:=True
End Sub
Mi idea es hacer que cuando se deje el primer libro en segundo lugar (o inactivo)
porque este ejecutando otro recien cargado, el primer libro se cierre.



1) si necesitas que dicho procedimiento sea aplicable a todo libro que tenga abierto en la sesion el usuario...
[induablemente] sera necesario considerar la opcion de usar los modulos 'de clase' [la # 3 del mensaje anterior] -por que ???-

2) hay algunos procedimientos, que asociados a 'eventos'... SOLO son funcionales para el libro que esta 'activo' en la sesion...
por eso es que SI se cierra cuando usas el evento '_activate' [el libro se 'convierte' en libro activo] y NO en el '_deactivate' :-(

3) para 'forzar' a que el libro 'actual' sea cerrado al cambiar de libro el usuario ->usando el evento Workbook_Deactivate<- ...
-> 'tendrias que truquear' [un poquitin] el proceso de cierre con algo +/- como lo siguiente...
en el modulo de codigo ThisWorkbook ==Private Sub Workbook_Deactivate()
Application.OnTime Now, "Cierrame"
End Sub
en un modulo de codigo 'normal' ==Option Private Module
Sub Cierrame()
ThisWorkbook.Close True ' o False
End Sub

4) -> OJO: es codigo que tendria que estar en modulos de todos los libros para los que necesites que sea 'aplicable' <- :-((
por eso es que [sugiero] debes pensar la alternativa del punto 3 en el mensaje anterior ;)

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

Preguntas similares