Automatics Sub

Last Updated on January 10, 2022 – 2 min read

Do macro run automatically? What are automatics VBA procedures?

Some macros with specific names are related to actions in Excel. They allow you to launch code automatically. You have to write your VBA code in a specific procedure. Your code will be executed automatically when the Excel action will be realized.


Automatic procedure launched when opening a workbook

The procedure named Auto_open is automatically activated when you open your workbook. It allows you to launch a VBA macro automatically at the opening.

Sub Auto_Open()
'This name of Sub run automatically
'at the opening of the workbook

   MsgBox "Bitcoin price is " & Cells(1,1).Value2

End Sub

You can also use the name Workbook_Open for running this macro.

Sub Workbook_Open()
'This name of Sub run automatically
'at the opening of the workbook

   MsgBox "Bitcoin price is " & Cells(1,1).Value2

End Sub

Automatic procedure launched when closing a workbook

The procedure Workbook_BeforeClose is activated automatically before closing your workbook with the following code. It allows you to launch the code automatically at the closing.

In the example below, the code checks the range A1. If the value is equal to ‘Wait’ the closing of the workbook is canceled. Else, the workbook is saved and closed.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'This name of Sub run automatically the macro
'at the closing of the workbook

    If Range("A1") = "Wait" Then
        MsgBox "The game is not over."
        'Cancel the closing of the workbook if "Wait" in A1
        Cancel = True
    Else
        'If different of "Wait" in A1 save and close the wbk
        ThisWorkbook.Save
    End If
    
End Sub

Automatic procedure launched at a specified time

How do you run a macro at a specific time?

The procedure below allows you to launch a macro automatically at a specific time. The code only works if your workbook with the macro is already open.

In the example below, the SpecificTime procedure will launch at 10 p.m. It will call the CloseWbk macro to close the workbook.

Sub SpecificTime()
'At the specific hour, the Sub CloseWbk is called

    h = "22:22:00"
    Application.OnTime EarliestTime:=TimeValue(h), Procedure:="CloseWbk"

End Sub

Sub CloseWbk()
    
    'Close and save the current workbook
    ThisWorkbook.Close savechanges = True

End Sub

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s