Puede hacer que Excel ejecute un procedimiento automáticamente cada vez que se abra un libro en particular. Por ejemplo, cuando se abre el libro de trabajo, es posible que desee ejecutar un procedimiento que pregunte a los usuarios si desean realizar alguna tarea, como guardar los datos del día anterior en otro archivo.

Para ejecutar un procedimiento automáticamente cuando se abre un libro de trabajo, todo lo que necesita hacer es nombrar el procedimiento Auto_Open (). Por lo tanto, el siguiente procedimiento se ejecutará automáticamente cada vez que se abra el libro que lo contiene:

Sub Auto_Open()

Dim strMsg As String     Dim intBoxType As Integer     Dim strTitle As String     Dim intUpdate As Integer     Dim strDefault As String     Dim strOldFile As String     Dim intStatusState As Integer

strMsg = "Do you want to save yesterday's transactions?"

intBoxType = vbYesNo + vbQuestion     strTitle = "Automatic Backup Routine"

intUpdate = MsgBox(Msg, BoxType, Title)

If intUpdate = vbYes Then         strMsg = "Which filename would you like use?"

strDefault = "OLD.DAT"

strOldFile = InputBox(strMsg, strTitle, strDefault)

intStatusState = Application.DisplayStatusBar         Application.DisplayStatusBar = True         Application.StatusBar = "Updating past months..."

UpdateYesterday         Application.StatusBar = False         Application.DisplayStatusBar = intStatusState     End If End Sub

(Recuerde que este procedimiento es un ejemplo; no se ejecutará correctamente en su sistema porque llama a una función llamada UpdateYesterday, que realiza la actualización real).

Esta macro se ejecuta automáticamente siempre que se abre el libro al que está adjunta. También puede modificar el código y colocarlo dentro del objeto ThisWorkbook simplemente cambiando la primera línea a esto:

Private Sub Workbook_Open()

Muchas personas consideran el uso de Auto_Open como la «forma antigua» de este tipo de macro y Workbook_Open como la «nueva forma». En cierto sentido eso es cierto; el método Workbook_Open es un enfoque más orientado a objetos para este tipo de macro que Auto_Open. En la práctica, sin embargo, hay muy poca diferencia entre los dos.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

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

Este consejo (2289) se aplica a Microsoft Excel 97, 2000, 2002 y 2003. Puede encontrar una versión de este consejo para la interfaz de cinta de Excel (Excel 2007 y posteriores) aquí:

link: / excelribbon-Running_a_Procedure_when_a_Workbook_is_Opened [Ejecutar un procedimiento cuando se abre un libro].