Vamos a continuar con la aplicación del objeto Workbook utilizando sus Métodos y en esta ocasión veremos cómo se puede programar una macro para poder dar la instrucción de Cerrar Libro; con esto se presentará la ventana de opción que nos permite Guardar los cambios, No guarda cambios o Cancelar.
Cerrar libro de Excel con Vba.
Para lograr esto vamos a utilizar el Método Close.
Método Close: Con la aplicación de este método, lo que estamos indicando desde VBA es la opción de cerrar el libro de Excel; en caso de que el libro haya sufrido cambios desde la última vez que se guardó, el sistema presenta la ventana de diálogo donde pregunta si se desea guardar los cambios o cancelar la acción.
Desde Excel abrimos el Editor VBA (Alt + F11), insertamos un Módulo (Clic derecho sobre el proyecto Excel, Insertar, Módulo:
Ingresamos el siguiente código de la macro:
Sub MetodoCerrarLibro()
ThisWorkbook.Close
End Sub
Queda de la siguiente manera en el Módulo:
Veamos lo que significan cada una de las líneas:
- La primera línea Sub MetodoCerrarLibro (), indica el inicio de la macro.
- En la segunda línea estamos utilizando del Objeto ThisWorkbook el Método Close el cual nos permite ejecutar la instrucción de cerrar el libro.
- La última línea marca el fin (End) de la Macro o Subrutina (Sub).
Vamos a vincular esta macro a una autoforma que insertemos en la hoja con clic derecho, asignar macro:
Seleccionamos del listado de macros que tengamos en el libro, la macro MetodoCerrarLibro, clic en Aceptar y ahora al dar clic en este botón se ejecuta la instrucción de cerrar libro.
Forma de citar este artículo (APA):
Invitado. (2015, mayo 22). Macro para cerrar libro [Entrada de blog]. Recuperado de https://www.gerencie.com/macro-para-cerrar-libro.html
Necesito una macro que oculte las filas sobrantes de un listado de estudiantes al final del último nombre. Además, si deseo agregar un nuevo estudiante, que me muestre nuevamente esas filas y que, automáticamente, ordene el listado en todas las hojas donde aparezcan dichos listados. Gracias de antemano.
Aquí tienes una macro que oculta las filas sobrantes de un listado y muestra esas filas si se agrega un nuevo estudiante. Además, ordena el listado en todas las hojas donde aparezcan los listados. El código asume que la fila 1 tiene encabezado y que el último registro está indicado con una celda vacía en la columna A (puedes cambiarlo según tus necesidades). “`vba Sub OcultarFilas() Dim ws As Worksheet Dim LastRow As Long For Each ws In ThisWorkbook.Worksheets ‘ Encontrar la última fila con datos en cada hoja Set rng = ws.Cells(ws.Rows.Count, “A”).End(xlUp) LastRow = rng.Row + 1 ‘ Mostrar todas las filas para asegurarse de que no haya ocultas antes de ocultar nuevas If Not rng Is Nothing Then ws.Rows(LastRow & “:” & Rows.Count).EntireRow.Hidden = True Else MsgBox “No hay datos disponibles.”, vbInformation End If Next End Sub “`