Voer een macro uit wanneer Excel start - VBA-codevoorbeelden

Moet u een macro uitvoeren wanneer Excel start? Je hebt twee opties:

1. Maak een Workbook_Open() sub binnen ‘ThisWorkbook’.

2. Plaats een Auto_Open() sub in een willekeurige module.

Werkboek_Open gebeurtenis

Maak een subtitel 'Workbook_Open' binnen 'ThisWorkbook'

123 Werkboek_open ()MsgBox "Deze code liep bij het starten van Excel!"Einde sub

Auto_Open

Met behulp van de tweede methode: maak eenvoudig een subroutine aan met de naam Auto_Open en plaats er code in, of bel een andere sub vanaf daar. Uw code wordt automatisch uitgevoerd wanneer Excel start.

123 Privé Sub Auto_Open()MsgBox "Deze code liep bij het starten van Excel!"Einde sub

Nieuw werkblad maken en een naam geven telkens wanneer Excel wordt geopend

De volgende code werkt bij het openen van een werkmap. Het voegt automatisch een nieuw blad toe en labelt het met de datum. Het controleert ook of het blad niet al bestaat - zodat het mogelijk is dat het meer dan eens per dag wordt geopend.

Deze code maakt gebruik van de Workbook Open Event en moet in de workbook module onder de “Open Work Book” event geplaatst worden. De functie Blad_Bestaat moet in een module geplaatst worden en deze controleert of het blad al dan niet bestaat:

123456789101112131415 Privé subwerkboek_Open()Dim New_Sheet_Name als stringNew_Sheet_Name = Format(Now(), "dd-mm-yy")Als Sheet_Exists(New_Sheet_Name) = False DanMet werkboekWorksheets.Add().Name = New_Sheet_NameEindigt metStop alsOpslaanEinde sub
12345678910111213 Functieblad_bestaat (werkbladnaam als tekenreeks) als booleaansDim werkblad als werkbladSheet_Exists = FalseVoor elk werkblad in dit werkboek.WerkbladenAls Work_sheet.Name = WorkSheet_Name DanSheet_Exists = TrueStop alsVolgendeFunctie beëindigen

Om het .XLSM-bestand voor deze tutorial te downloaden, klik hier

Stel het standaardblad in wanneer de werkmap wordt geopend

Wilt u er zeker van zijn dat een werkblad altijd als eerste wordt weergegeven wanneer een werkmap wordt geopend? Als u bijvoorbeeld een werkmap opent, is blad3 altijd het actieve blad. Hier is hoe.

U kunt naar een blad van VBA verwijzen door zijn programmanaam (dwz Blad3) of door zijn tabnaam (dwz JanData). Het is het beste om de programmanaam te gebruiken, omdat als de naam van het tabblad verandert, uw VBA-code die verwijst naar een tabbladnaam niet meer werkt. Als u echter de programmanaam gebruikt, kan een gebruiker de naam van het tabblad meerdere keren wijzigen en uw macro werkt nog steeds.

Om ervoor te zorgen dat een bepaald blad altijd wordt geactiveerd wanneer een werkmap wordt geopend, plaatst u de code sheet.activate in de sub workbook_open. Dit is een voorbeeld dat sheet3 activeert door de programmanaam te gebruiken telkens wanneer een werkmap wordt geopend.

123 Privé subwerkboek_Open()Blad3.ActiverenEinde sub

En dit doet het door de tabnaam te gebruiken:

1234 Privé subwerkboek_Open()Spreadsheets("mijntabnaam").ActiverenEinde sub

Sidenote: u moet Excel opslaan en opnieuw starten om dit te laten werken.
Kanttekening: dit werkt alleen als macro's zijn ingeschakeld.
Sidenote: Zet deze code in het codevenster voor het ThisWorkbook-object in de VBE.

Formulier laden telkens wanneer werkmap wordt geopend

Als u een formulier wilt laden of wat VBA-code wilt uitvoeren wanneer u een Excel-werkmap opent, plaatst u uw code in het Thisworkbook-codevenster en in de sub Workbook_Open.

Uit je spreadsheet:
1. Druk op ALT en F11 om de VB-editor te openen
2. Dubbelklik op het woord ThisWorkbook om het codevenster te openen
3. Typ de volgende code in het codevenster van ThisWorkbook:

123 Privé subwerkboek_Open()UserForm1.ToonEinde sub

Sidenote: Vervang Userform1 door uw formuliernaam

4. Sluit Excel af en open het opnieuw.

wave wave wave wave wave