Cómo cerrar todos los libros de Excel abiertos con un solo clic
Algunos de nosotros trabajamos con varios libros de Excel abiertos al mismo tiempo. Ya sea que los abramos y trabajemos en uno por un tiempo y luego pasemos al siguiente, o que tengan un enlace o conexión que requiere que todos estén abiertos al mismo tiempo. Independientemente de cómo terminemos con muchos libros abiertos, cerrarlos manualmente, uno por uno, puede ser tedioso.
La buena noticia es que puedes utilizar un procedimiento de VBA para cerrarlos todos automáticamente. En este artículo, te mostraré un procedimiento simple que guarda cada libro, si es necesario, antes de cerrarlo y luego pasa al siguiente libro, eventualmente guardando y cerrando todos.
Estoy utilizando Microsoft 365 en un sistema Windows 10 de 64 bits. (Recomiendo que esperes a actualizar a Windows 11 hasta que se resuelvan todos los problemas). Puedes descargar el archivo .bas, que contiene el procedimiento, e importarlo en tu libro Personal.xlsb. Excel Online no admite VBA.
Dónde colocar el procedimiento
Lo primero que debes tener en cuenta es que no puedes almacenar este procedimiento en cualquier libro. Si es el último libro abierto, el procedimiento lo cerrará primero y se detendrá. Este es el tipo de procedimiento que pertenece a tu libro personal. Este libro, llamado Personal.xlsb, se abre cada vez que abres Excel y está oculto de forma predeterminada. Todos los procedimientos en Personal.xlsb están disponibles para todos los libros abiertos. Es como una biblioteca.
Abre el Editor de Visual Basic (VBE) presionando Alt + F11. Si la ventana del proyecto a la izquierda no es visible, presiona Ctrl + R o elige Explorador de proyectos desde el menú Ver. Si Personal.xlsb está en el Explorador de proyectos, expándelo y haz doble clic en Módulo1 para abrir su ventana de código.
Si Personal.xlsb no está en la ventana del proyecto, debes grabar un procedimiento corto de la siguiente manera:
Enseñanza y Aprendizaje con Microsoft: Herramientas y Lecciones para Profesores de todos los Niveles- Regresa a la hoja de cálculo y haz clic en la pestaña Desarrollador.
- En el grupo Macros, haz clic en Grabar macro.
- En el cuadro de diálogo resultante, solo necesitas elegir dónde se almacenará el procedimiento. En el menú desplegable Almacenar macro en, elige Libro de macros personal (Figura A).
- Haz clic en Aceptar.
- Haz clic en Detener grabación en el grupo Macros de la pestaña Desarrollador.
Regresa al VBE y encontrarás Personal.xlsb en la ventana del proyecto, como se muestra en Figura B. Haz doble clic en Módulo1 para abrir su hoja de código y elimina el procedimiento que acabas de crear. No necesitas este procedimiento, su único propósito era mostrar Personal.xlsb.
Figura A
Figura B
Con una hoja de código abierta para Personal.xlsb, estás listo para agregar el código que se muestra en Listado A. Realmente es tan simple como parece (Figura C). Si estás utilizando una versión con cinta de opciones, asegúrate de guardar el libro como un archivo habilitado para macros. Si estás trabajando en la versión de menús, puedes omitir este paso.
Guía de Examen de Certificación Lotus Notes: Desarrollo de Aplicaciones y Administración del SistemaListado A
Sub CerrarLibros()
'Guarda y cierra todos los libros abiertos.
Dim wb As Workbook
'Desactiva la actualización de pantalla.
Application.ScreenUpdating = False
'Recorre todos los libros abiertos y los cierra.
For Each wb In Workbooks
Debug.Print wb.Name
If wb.Name <> "PERSONAL.XLSB" Then
wb.Close SaveChanges:=True
End If
Next wb
'Activa la actualización de pantalla.
Application.ScreenUpdating = True
'Cierra Excel.
Application.Quit
End Sub
Figura C
El procedimiento se encuentra en los archivos .bas descargables, que puedes importar al Módulo 1 del archivo Personal.xlsb. Si introduces el código manualmente, no lo pegues directamente desde esta página web. En su lugar, copia el código en un editor de texto y luego pégalo en el módulo Personal.xlsb. De esta forma, eliminarás cualquier caracter fantasma de la web que podría causar errores.
Una vez que tengas el procedimiento en Personal.xlsb, puedes ejecutarlo desde cualquier libro.
Sobre el procedimiento
Este procedimiento primero declara una variable de objeto Workbook como wb y desactiva la actualización de pantalla para que no veas los archivos cerrándose realmente. La instrucción For Each recorre todos los objetos de libro abiertos y los cierra, utilizando el valor =True para guardar cada libro antes de cerrarlo, a menos que el libro actual sea Personal.xlsb. En ese caso, VBA omitirá este paso y continuará con el siguiente libro. El código debe saltarse el libro Personal.xlsb porque si se cierra, también se detiene su ejecución, dejando posiblemente libros abiertos. Una vez que se cierran todos los libros, la instrucción Application.Quit cierra Excel. Si deseas dejar Excel abierto, puedes comentar esta instrucción.
Si Excel está abierto, ciérralo. Abre algunos libros de Excel y desde cualquier libro abierto, haz clic en la pestaña Desarrollador y luego en Macros en el grupo Macros. En el cuadro de diálogo resultante, que se muestra en Figura D, selecciona el procedimiento CerrarLibros y haz clic en Ejecutar. El procedimiento guarda y cierra cada libro abierto y luego cierra Excel.
Figura D
WordPerfect Office 2000: La solución perfecta para compartir documentos en diferentes plataformasLo más probable es que no quieras seguir todos esos pasos para ejecutar esta macro. Te recomiendo que la añadas a la Barra de acceso rápido (QAT) o a un grupo personalizado. Si necesitas ayuda con eso, lee Cómo agregar macros de Office a la barra de acceso rápido para acceso rápido.
En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Software, allí encontraras muchos artículos similares a Cómo cerrar todos los libros de Excel abiertos con un solo clic , tenemos lo ultimo en tecnología 2023.
Artículos Relacionados