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.