Most Valuable Professional


View Jan Karel Pieterse's profile on LinkedIn subscribe to rss feed
Subscribe in a reader

Subscribe to our mailing list

* indicates required

Audit !!!

Probeer onze RefTreeAnalyser
de beste Excel formule auditing tool.

Cursussen

Excel VBA Masterclass (Engels)
Excel VBA voor Financials

Third party tools

Speed up your file

FastExcel
The best tool to optimise your Excel model!

Repair your file

Stellar Phoenix Excel Repair
Best tool to repair corrupt Excel sheets and objects
Home > Nederlandse site > Artikelen > Open Event voorkomen
This page in English

Voorkomen dat auto_open en Workbook_Open events worden uitgevoerd

Inleiding

Omdat ik software ontwikkelaar ben, komt het regelmatig voor dat ik een Excel bestand wil openen met de macro's ingeschakeld. Tegelijkertijd wil ik daarbij soms voorkomen dat het Workbook_Open event of de Auto_Open macro wordt uitgevoerd. In dit artikel laat ik zien hoe dit in de verschillende Excel versies kan worden gedaan.

Waarom zou ik dit moeten willen, vraagt je je af? Ik doe dit bijvoorbeeld met mijn eigen bestanden die ik nog aan het ontwikkelen ben. Het Open event kan code bevatten die enige tijd nodig heeft om uitgevoerd te worden, of bevat routines die het project configureren op een manier die ik (tijdelijk) wil omzeilen wanneer ik aan het bestand ga werken.

Indien een bestand dat je opent op de hieronder beschreven manieren nog meer event code bevat, dan zal deze event code pas reageren op de events nadat je zelf een macro hebt gestart in het bestand (bijvoorbeeld door op een knop te drukken of een menu keuze te maken) of nadat een User Defined Functie is uitgevoerd.

Ik raad af om deze methode toe te passen op bestanden waarvan je de herkomst niet kent. De VBA code kan events bevatten die toch worden uitgevoerd na openen van het bestand en eventueel ongewenste opdrachten uitvoeren.

Excel 2010, 2013, 2016

Macro beveiligingsniveau op "Alle macro's inschakelen", of een "vertrouwd" document

Als je het macro beveiligingsniveau hebt ingesteld op "Alle macro's inschakelen", of als het document al eerder hebt geopend en macro's hebt ingeschakeld (waardoor het document als een "vertrouwd" document is ingesteld), of als je het document in een vertrouwde map staat, kies dan Bestand, Openen en selecteer je bestand. Houdt de shift toets ingedrukt terwijl je op de Openen knop klikt:

Een bestand selecteren uit het Bestand, Openen dialoogvenster (Excel 2010)

Fig. 1: Een bestand selecteren uit het Bestand, Openen dialoogvenster (Excel 2010, 2013, 2016)

Uiteraard kan het bestand in de lijst Onlangs geopende documenten staan. In dat geval houd je de shift knop ingedrukt terwijl je op het bestand klikt in de lijst (ten tijde van het schrijven van dit artikel was de Nederlandse versie van Excel 2010 nog niet beschikbaar):

Klik op een bestand in de lijst Onlangs geopende documenten (Excel 2010)

Fig. 2: Klik op een bestand in de lijst Onlangs geopende documenten (Excel 2010)

Door dit te doen voorkom je uitvoering van zowel het Workbook_Open als de Auto_Open macro.

Macro beveiliging ingesteld op "Alle macro's uitschakelen, met melding"

Volg eerst de aanwijzingen hierboven.

Normaal gesproken, als je een dergelijk bestand opent toont Excel de balk met de beveiligingswaarschuwing. Als je echter de shift toets had ingedrukt, dan verschijnt dit venster:

Macro's inschakelen dialoogvenster (Excel 2010)

fig 3: Macro's inschakelen dialoogvenster (Excel 2010)

Omdat je de shift toets ingedrukt hield toen je het bestand aanklikte in de lijst met onlangs geopende documenten, of toen je op de "Openen" knop klikte, zullen er geen Automacros worden uitgevoerd.

Excel 2007 en hoger

Macro beveiligingsniveau op "Alle macro's inschakelen", of een "vertrouwd" document

Indien de vertrouwde map zich op het network bevindt, dan voorkomt het indrukken van de shift toets het starten van de macro helaas niet!

Als je het macro beveiligingsniveau hebt ingesteld op "Alle macro's inschakelen", of als je het document in een "vertrouwde" map hebt opgeslagen, of als het bestand macro's bevat van een vertrouwde uitgever, kies dan Bestand, Openen en selecteer je bestand. Houdt de shift toets ingedrukt terwijl je op de Openen knop klikt:

Een bestand selecteren uit het Bestand, Openen dialoogvenster (Excel 2007)

Fig. 4: Een bestand selecteren uit het Bestand, Openen dialoogvenster (Excel 2007 en hoger)

Uiteraard kan je bestand in de lijst "Onlangs geopende documenten" staan. In dat geval houd je de shift knop ingedrukt terwijl je op het bestand klikt in de lijst:

Het bestand kiezen uit de lijst Onlangs geopende documenten (Excel 2007)

Fig. 5: Het bestand kiezen uit de lijst Onlangs geopende documenten (Excel 2007 en hoger)

Hierdoor voorkom je het uitvoeren van het Workbook_Open event en een Auto_Open macro.

Macro beveiliging ingesteld op "Macro's uitschakelen, met melding"

Volg eerst de aanwijzingen die hierboven staan.

Normaal gesproken, als je een bestand met macro's opent, dan toont Excel de beveiligingswaarschuwing. Als je echter de shift toets had ingedrukt, dan verschijnt dit venster:

Macro's inschakelen dialoogvenster (Excel 2007)

fig 6: Macro's inschakelen dialoogvenster (Excel 2007 en hoger)

Omdat je de shift toets ingedrukt hield toen je het bestand aanklikte in de lijst met onlangs geopende documenten, of toen je op de "Openen" knop klikte, zullen er geen Automacros worden uitgevoerd.

Excel 97, 2000, XP, 2003

Macro beveiliging op laag of een vertrouwde uitgever

In het geval dat je macro beveiliging op laag staat, of wanneer je bestand gesigneerde code bevat waarvan je de uitgever als betrouwbaar hebt aangeduid, moet je de shift knop al indrukken op het moment dat je op Openen klikt in het Bestand, Openen dialoogvenster:

Het bestand openen vanuit het Bestand, Openen venster (Excel 97-2003)

Fig. 7: Het bestand openen vanuit het Bestand, Openen venster (Excel 97-2003)

Uiteraard kan het zijn dat het bestand in je lijst met recent geopende documenten staat. In dat geval moet je de shift toets ingedrukt houden terwijl je op het bestand klikt:

Klik op een bestand in de lijst Onlangs geopende documenten (Excel 97-2003)

Fig. 8: Klik op een bestand in de lijst Onlangs geopende documenten (Excel 97-2003)

Op deze manier voorkom je dat het Workbook_Open event wordt uitgevoerd en dat een Auto_Open macro start.

Macro beveiliging op gemiddeld of hoger

Als je macro beveiligingsniveau tenminste op "Gemiddeld" staat en je de uitgever van de macro nog nooit als betrouwbaar hebt aangevinkt, dan hoef je geen shift in te drukken als je op Openen klikt of als je het bestand aanwijst in de lijst met onlangs geopende documenten. In plaats daarvan moet je de shift toets indrukken als je macro's gaat inschakelen:

Houdt shift ingedrukt terwijl je op Macro's inschakelen klikt.

Fig.9: Houdt shift ingedrukt terwijl je op Macro's inschakelen klikt.

Op deze manier voorkom je dat het Workbook_Open event wordt uitgevoerd en dat een Auto_Open macro start.

 


Vragen, suggesties en opmerkingen

Al het commentaar over deze pagina:


Comment by: masja klein brinke (9/8/2010 8:53:39 AM)

Ik moet een mail openen maar dan moet ik de macro's op laag zetten via de kolom extra op de knoppenbalk in excel 2007.
Die knop ontbreekt, wat kan ik intoetsen zodat ik hetzelfde effect krijg als het ware??
Misschien heb ik het hierboven over het hoofd gezien?
Vriendelijke Groet,
Masja Klein Brinke

 


Comment by: Jan Karel Pieterse (9/8/2010 11:24:25 PM)

Hallo Masja,

Ik begrijp niet helemaal wat je bedoeling is?
Wat bedoel je precies met de "kolom extra op de knoppenbalk", volgens mij is er in Excel 2007 niet zo'n kolom?

 


Comment by: Peter Cox (9/26/2016 6:42:28 PM)

Hallo,

Geregeld moet ik vanuit een internetpagina een document openen in excel. Als ik dit document heb geopend en daarna een zelfde document met andere gegevens open krijg ik van excel de volgende melding: In Excel kunnen geen twee werkmappen met dezelfde naam tegelijk open zijn. Is er in VBA een stukje macro te programmeren zodat het bestaande document gesloten wordt en het nieuwe document toch geopend kan worden?

Groet Peter

 


Comment by: Jan Karel Pieterse (9/27/2016 11:47:57 AM)

Hoi Peter,

Dat is helaas niet mogelijk, de foutmelding wordt door Excel gegenereerd zonder dat enige VBA code getriggerd wordt.

 


Heeft u vragen, suggesties of opmerkingen? Gebruik dan dit formulier.

Mocht uw vraag niet direct relevant zijn voor deze pagina, maar een algemene Excel vraag betreffen, dan adviseer ik om deze hier te stellen: www.eileenslounge.com.

Uw naam (verplicht veld):

Uw e-mail adres (Niet verplicht, dit adres wordt niet getoond)

Uw verzoek of commentaar:

Als u VBA code in uw commentaar plaatst, gebruik dan [VB] tags: [VB]Uw code[/VB].