We gebruiken hier een excel sheet met zo'n 2000 rijen en daar zitten op een aantal kolommen ook filters. Verder is er een macro die wat dingen opnieuw berekend.
Wanneer op geen van de kolommen een filter actief is runt deze macro redelijk snel, enkele seconden.
Wanneer er echter op 1 of meer kolommen een filter is ingesteld, dan loopt die verwerkingstijd op tot meer dan een minuut en zie je dat hij na iedere stap ook opnieuw het filter gaat controleren.
Hoe kan ik er nu voor zorgen dat een filter niet tot een dergelijke vertraging leidt, ik kon twee mogelijkheden bedenken:
1) het uitvoeren van het filter wordt voorkomen in de periode dat de macro nog niet klaar is, dus effectief betekent dit dan volgens mij geen schermuitvoer ten tijde van de macro (zandlopertje in beeld?) (moet hij niet op de achtergrond toch nog steeds ook iedere keer dat filter gaan uitrekenen, anders scheelt dit alleen nog maar in scherm-update tijd en niet in rekentijd)
Ofwel
2) * lees de status van alle filters in, sla de waarden op
* zet alle filters uit
* run de macro
* zet dan de filters weer op de originele waarden.
Probleem is echter dat ik van geen van beide een idee heb hoe het te implementeren, en ik dus van optie 1 me afvraag of hij dan niet alsnog de filters wel gaat zitten uitrekenen.
Graag een schop in de goede richting, want als ik op msdn zoek dan kom ik de volgende zin tegen
Wanneer op geen van de kolommen een filter actief is runt deze macro redelijk snel, enkele seconden.
Wanneer er echter op 1 of meer kolommen een filter is ingesteld, dan loopt die verwerkingstijd op tot meer dan een minuut en zie je dat hij na iedere stap ook opnieuw het filter gaat controleren.
Hoe kan ik er nu voor zorgen dat een filter niet tot een dergelijke vertraging leidt, ik kon twee mogelijkheden bedenken:
1) het uitvoeren van het filter wordt voorkomen in de periode dat de macro nog niet klaar is, dus effectief betekent dit dan volgens mij geen schermuitvoer ten tijde van de macro (zandlopertje in beeld?) (moet hij niet op de achtergrond toch nog steeds ook iedere keer dat filter gaan uitrekenen, anders scheelt dit alleen nog maar in scherm-update tijd en niet in rekentijd)
Ofwel
2) * lees de status van alle filters in, sla de waarden op
* zet alle filters uit
* run de macro
* zet dan de filters weer op de originele waarden.
Probleem is echter dat ik van geen van beide een idee heb hoe het te implementeren, en ik dus van optie 1 me afvraag of hij dan niet alsnog de filters wel gaat zitten uitrekenen.
Graag een schop in de goede richting, want als ik op msdn zoek dan kom ik de volgende zin tegen
Kun je dus überhaupt iets aan die filters instellen of begrijp ik het verkeerd?Note that all the properties of the Filter object are read-only
Onderstaande signature is al >20jr oud ***hoe dan***
---
Het internet is een veelbelovend medium
....dat maar heel weinig van zijn beloftes nakomt.
Wat weg is... raak je nooit meer kwijt :P