Als ene macro draait, dan andere overslaan

Status
Niet open voor verdere reacties.

obeter

Nieuwe gebruiker
Lid geworden
26 jun 2008
Berichten
1
Ik heb een systeem gemaakt waarbij iedere keer bij het opstarten van een bestand nieuwe data wordt geimporteerd. Dit bestaat uit het binnenhalen van data, verwijderen oude data uit draaitabel, verfrissen van draaitabellen, dan alle reeksen laten zien in een grafiek, dan alle reeksnamen wegschrijven op een ander werkblad. Op dit werkblad kunnen de kleuren van de reeksen worden gekozen middels het selecteren van een fontkleur.

Bovenstaande is allemaal opgenomen in de worksheet module met commando Workbook_Open(). Hij roept dan 2 macro's op die het gaan uitvoeren.

In totaal heb ik 2 draaitabellen, en 2 draaigrafieken. De assen (min/max) van de draaigrafieken en kleuren van de lijnen worden automatisch berekend aan de hand van de geselecteerde reeks. Deze code heb ik nu zodanig staan dat deze wordt uitgevoerd als er iets in de draaitabel veranderd

Code:
Private sub Worksheet_Change(ByVal Target As Range
Call macro1
End Sub

Probleem: De code voor het aanpassen van de grafieken moet niet worden uitgevoerd bij het opstarten van het bestand. Dit gebeurt nu dus wel omdat hij nieuwe tabellen aanmaakt (en hij dus tussendoor dus macro1 oproept)., en dus de grafieken wil aanpassen. Dit kan niet omdat de data nog niet allemaal overeenkomt met elkaar, resulterende in een foutmelding.

Is er een mogelijkheid om te programmeren dat macro1 pas moet starten als de andere macro's klaar zijn. Hij moet hem helemaal dus helemaal niet oproepen voor de eerste 30 seconden (kan varieren). Hierna moet hij wel door een worksheet_change commando worden opgeroepen, omdat hij iedere keer moet worden uitgevoerd als er een andere reeks wordt geselecteerd.
 
Code:
Private Sub workbook_open()
  Application.EnableEvents = False
  ----------
  Application.EnableEvents = True
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan