in

Cómo crear un procedimiento VBA que cierre todos los libros abiertos en Excel

istock-881365070-datos-de-excel.jpg

Este sencillo procedimiento puede ahorrarle mucho tiempo cuando haya terminado con su trabajo. Susan Harkins te dice cómo.

istock-881365070-datos-de-excel.jpg
Imagen: iStockfoto

Algunos de nosotros trabajamos con varios libros de Microsoft Excel abiertos al mismo tiempo. O los abrimos y trabajamos un rato y pasamos al siguiente, o tienen un vínculo o conexión que requiere que todos estén abiertos al mismo tiempo. Independientemente de cómo termine con muchos libros de trabajo abiertos, cerrarlos todos manualmente, uno por uno, puede ser tedioso.

La buena noticia es que puede usar un procedimiento VBA para cerrarlos todos. En este artículo, le mostraré un procedimiento simple que guarda cada libro de trabajo, si es necesario, antes de cerrarlo y luego pasa al siguiente libro de trabajo, finalmente guardándolos y cerrándolos todos.

VER: 83 consejos de Excel que todo usuario debe dominar (TechRepublic)

Uso Microsoft 365 en un sistema Windows 10 de 64 bits. (Le recomiendo que espere para actualizar a Windows 11 hasta que se hayan solucionado todos los problemas). Puede descargar el archivo .bas, que contiene el procedimiento, e importar el archivo a su libro de trabajo Personal.xlsb. Excel Online no es compatible con VBA.

Dónde va el procedimiento

Lo primero que debe evitarse es esto: no puede almacenar este procedimiento en cualquier libro de trabajo. Si es el último libro abierto, el procedimiento lo cerrará primero y se detendrá. Este es el tipo de procedimiento que pertenece a su libro de trabajo personal. Este libro de trabajo, denominado Personal.xlsb, se abre cada vez que abre Excel y está oculto de forma predeterminada. Todos los procedimientos en Personal.xlsb están disponibles para todos los libros abiertos. Es una especie de biblioteca.

Abra el Editor de Visual Basic (VBE) presionando Alt + F11. Si la ventana de proyecto de la izquierda no está visible, presione Ctrl + R o seleccione Explorador de proyectos en el menú Ver. Si Personal.xlsb está en el Explorador de proyectos, expándalo y haga doble clic en Módulo1 para abrir su ventana de código.

Si Personal.xlsb no está en la ventana del proyecto, debe registrar un breve procedimiento de la siguiente manera:

    1. Regrese a la hoja de trabajo y haga clic en la pestaña Desarrollador.
    2. En el grupo Macros, haga clic en Grabar macro.
    3. En el cuadro de diálogo resultante, solo necesita elegir dónde se almacenará el procedimiento. En el menú desplegable Almacenar macro en, seleccione Libro de macros personal (Figura A).
    4. Haga clic en Aceptar
    5. Haga clic en Detener grabación en el grupo Macros en la pestaña Desarrollador.

    Vuelva al VBE y encontrará Personal.xlsb en la ventana del proyecto, como se muestra en Figura B. Haga doble clic en Módulo1 para abrir su hoja de códigos y elimine el procedimiento que acaba de crear. No necesita este procedimiento; su único propósito era mostrar Personal.xlsb.

    Figura A

    Elija dónde almacenar el procedimiento.
    Elija dónde almacenar el procedimiento.

    Figura B

    Ahora Personal.xlsb está disponible.
    Ahora Personal.xlsb está disponible.

    Con una hoja de código abierta para Personal.xlsb, está listo para agregar el código que se muestra en Listado A. Realmente es tan simple como parece (Figura C). Si está utilizando una versión de cinta, asegúrese de guardar el libro de trabajo como un archivo habilitado para macros. Si está trabajando en la versión de menú, puede omitir este paso.

    Listado A

    Sub CloseWorkbooks()

    'Save and close all open workbooks.

    Dim wb As Workbook

    'Turns off screen.

    Application.ScreenUpdating = False

    'Cycles through open workbooks and closes them.

    For Each wb In Workbooks

    Debug.Print wb.Name

    If wb.Name <> "PERSONAL.XLSB" Then

    wb.Close SaveChanges:=True

    End If

    Next wb

    'Turns on screen.

    Application.ScreenUpdating = True

    'Closes Excel.

    Application.Quit

    End Sub

    Figura C

    Introduzca CloseWorkbooks() en la hoja de códigos del módulo 1 de Personal.xlsb.
    Introduzca CloseWorkbooks() en la hoja de códigos del módulo 1 de Personal.xlsb.

    El procedimiento está en los archivos .bas descargables, que puede importar al Módulo 1 del archivo Personal.xlsb. Si ingresa el código manualmente, no pegue desde esta página web. En su lugar, copie el código en un editor de texto y luego péguelo en el módulo Personal.xlsb. Al hacerlo, se eliminarán los caracteres web fantasma que, de lo contrario, podrían causar errores.

    Una vez que tenga el procedimiento en Personal.xlsb, puede ejecutarlo desde cualquier libro de trabajo.

    Sobre el procedimiento

    Este procedimiento primero declara una variable de objeto de libro de trabajo como wb y desactiva la actualización de pantalla para que no vea cerrarse los archivos. La instrucción For Each recorre todos los objetos del libro de trabajo abierto y los cierra, usando el valor =True para guardar cada libro de trabajo. antes de cierre, a menos que el libro de trabajo actual sea Personal.xlsb. En ese caso, VBA omite este paso y continúa con el siguiente libro de trabajo. El código debe omitir el libro de trabajo Personal.xlsb porque si se cierra, también deja de ejecutarse, quizás dejando abiertos los libros de trabajo. Una vez que se cierran todos los libros de trabajo, la instrucción Application.Quit cierra Excel. Si desea dejar Excel abierto, puede comentar esta declaración.

    Si Excel está abierto, ciérrelo. Abra algunos libros de Excel y desde ninguna abra el libro de trabajo, haga clic en la pestaña Desarrollador y luego haga clic en Macros en el grupo Macros. En el cuadro de diálogo resultante, que se muestra en Figura D, seleccione el procedimiento CloseWorkbooks y haga clic en Ejecutar. El procedimiento guarda y cierra cada libro abierto y luego sale de Excel.

    Figura D

    Elija el procedimiento CloseWorkbooks() para cerrar todos los libros abiertos.
    Elija el procedimiento CloseWorkbooks() para cerrar todos los libros abiertos.

    Lo más probable es que no desee seguir todos esos pasos para ejecutar esta macro. Le recomiendo que lo agregue a la barra de herramientas de acceso rápido (QAT) o a un grupo personalizado. Si necesita ayuda con eso, lea Cómo agregar macros de Office a la barra de herramientas de QAT para un acceso rápido.

Fuente

Apple presenta el iPad Air más potente y versátil de la historia

Mapa de Hearthstone de World Warcraft de próxima expansión

Próximamente se revelarán las próximas expansiones de World of Warcraft y Hearthstone