Bill tiene una macro «antes de guardar» que prueba tres celdas. Si las celdas están vacías, la macro evita que el usuario guarde. En otras palabras, deben completar las celdas antes de poder guardar el libro.

A Bill le gustaría guardar este libro de trabajo como plantilla, pero cuando borra las tres celdas, la macro también le impide guardar como plantilla. Le gustaría que la plantilla estuviera «limpia», con un valor predeterminado de las tres celdas vacías. Los usuarios crearían un nuevo libro de trabajo basado en la plantilla y luego (correctamente) no podrían guardar a menos que las celdas estén completadas.

Bill se pregunta cómo puede guardar el libro de trabajo como plantilla, con las tres celdas vacías.

En realidad, existen varios enfoques diferentes que puede adoptar para guardar su plantilla.

La primera es cambiar el nombre de su libro de trabajo a algo bastante esotérico, como X27TT3W.xlsm. Luego, agregue algo de lógica a su macro «antes de guardar» que verifica si el nombre del libro de trabajo base es X27TT3W. Si es así, permita que se guarde el libro de trabajo (o plantilla) independientemente de la condición de las tres celdas. Una vez que se guarda la plantilla, puede cambiarle el nombre en Windows a su nombre deseado y se puede compartir con sus usuarios. A menos que adivinen el nombre esotérico que eligió, no podrán guardar el libro de trabajo sin asegurarse de que las tres celdas estén completadas.

Otro enfoque es simplemente agregar otro controlador de eventos a su libro de trabajo, este que se ejecuta cuando abre el libro por primera vez, para borrar el contenido de las tres celdas. Esto podría ser algo simple, como esto:

Private Sub Workbook_Open()

Sheet1.Cells(1,1).Clear     Sheet1.Cells(2,1).Clear     Sheet1.Cells(3,1).Clear End Sub

Esta macro borra las celdas en A1: A3. Si desea borrar un rango diferente, simplemente cambie las tres líneas para reflejar las celdas que desea borrar. Luego, coloque algo en las tres celdas (para que pase la prueba en la macro «antes de guardar») y guárdelo como una plantilla.

Otro enfoque que es muy fácil de implementar es simplemente deshabilitar eventos antes de guardar la plantilla. Esto no se hace dentro de una macro, sino dentro de la ventana Inmediato en el Editor de Visual Basic. Todo lo que necesitas hacer es ingresar esta única línea:

Application.EnableEvents = False

Guarde inmediatamente su libro de trabajo como plantilla y luego ingrese la siguiente línea en la ventana Inmediato del Editor de Visual Basic:

Application.EnableEvents = True

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (13547) se aplica a Microsoft Excel 2007, 2013, 2016, 2019 y Excel en Office 365.