Saltar al contenido
View in the app

A better way to browse. Learn more.

Ayuda Excel

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

No puedo Cerrar Libro 2

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!

Featured Replies

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

@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.

Editado el por Héctor Miguel

publicado
  • Autor

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

publicado
  • Autor

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.