Saltar al contenido

No puedo Cerrar Libro 2


Recommended Posts

publicado

Buenas tardes,

Tengo un libro1 en excel donde ejecuto una macro y este abre un libro2, el cual comienza a ejecutar otra macro. Hasta acá todo bien. El problema ocurre cuando quiero cerrar el libro 2.

Cuando estoy en el libro 2 y cierro el libro 1 con la función Workbooks("libro1.xlsm").Close SaveChanges:=True, se cierra bien, el problema es que al continuar en el libro 2 este no se cierra queda abierto y necesito que también se cierre. Acá les dejo el código que estoy usando.

Si reviso el código línea por línea con F8 se cierra todo y funciona perfect, entonces nosé porque cuando se ejecuta todo de una vez queda abierto al final el libro2 y no se cierra. Alguien me podría ayudar?

Este código estoy ocupando:

En el libro1:

Private Sub Workbook_Open()

Application.DisplayAlerts = False
Application.ScreenUpdating = False


ActiveCell.FormulaR1C1 = "=TODAY()-1"

ThisWorkbook.Save

nbre = "NO-TOCAR-" & ActiveWorkbook.Name
ActiveWorkbook.SaveCopyAs ThisWorkbook.Path & "/" & nbre

Call Abrir_libro2

Application.DisplayAlerts = True
Application.ScreenUpdating = True

End Sub

En el libro2:

Private Sub Workbook_Open()

On Error Resume Next
Workbooks("libro1.xlsm").Close SaveChanges:=True

Call Macro2

Workbooks("libro2.xlsm").Close SaveChanges:=True

End Sub

El libro 1 se cierra bien pero queda activo el libro 2 no se cierra excel.

Gracias!

publicado

parece que entraste en un "callejón sin salida" (?), para que puedas identificar que línea(s) pueda(n) ser causa del error, haz una prueba con estos cambios:

en el evento '_open' de tu libro1, ELIMINA (o comenta) la linea del "displayalerts = false"

en el evento '_open' de tu libro2, ELIMINA (o comenta) la línea con el "on error resume next"

saludos,
hector.

publicado

@Héctor Miguel no funciono, queda el libro2 abierto y el 1 cerrado.

publicado
Hace 45 minutos , sretamalb dijo:

no funciono, queda el libro2 abierto y el 1 cerrado

la sugerencia NO fue para que soluciones tu problema, sino para que identifiques alguna (posible) causa, analizarlo de esta manera:

1) al abrir tu "libro1"...
- inhabilitas las alertas
- pones un dato en la "ActiveCell" (cual es ???, quien lo sabe ???)
- guardas los cambios
- guardas una copia
- mandas abrir el "libro2"
=> en este punto, las siguientes lineas NO se ejecutan hasta que el procedimiento "regresa" de cualquier derivación a partir de la instrucción anterior

2) al abrir tu "libro2"...
- inhabilitas los errores (mala práctica si no sabes que errores vas a encontrar)
- cierras el "libro1" <= OJO: las líneas "pendientes" (libro1) desde la derivación YA NO SE EJECUTAN
- llamas a otro procedimiento ("macro2")... que hace ???

o... adjunta copia de tus "libro1" y "libro2" (que sea FIEL de la situación a resolver)

saludos,
hector.

publicado

Gracias Héctor, entonces es mejor trabajar en vez de Private Sub Workbook_Open() en: Private Sub Workbook_Activate()

publicado

o no?

 

publicado

depende de... (que es exactamente lo que buscas ?)

la realidad es que "hay un lugar para cada cosa"... por lo cual, cada cosa "debiera estar en su lugar" (no ?)

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.