Was du mal noch überpürfen könntest:
Du schreibst bestimmt auch Daten irgendwohin. Gibt es den Formeln in den betroffenen Arbeitsblättern? Dann könnte es nämlich sein, das jedesmal beim Schreiben alles neu Berechnet wird (Calculate-Event).
Ansonsten kann alles mögliche der Fall für lange Laufzeiten sein, z.b. würde ich es auch vermeiden den Datentyp Variant zu verwenden, vorallem im großen Stil.
Mitunter kann es auch schneller sein etwas zu finden, wenn man statt die Find-Methode die Excel-Funktion Match nimmt, oder man sich die Daten als Array geben läßt und darin selber sucht. Das ist aber erst bei sehr großen Datenmengen notwendig (die Rede ist von Datenmengen im 6/7-stelligen Bereich und mehr).
Wie schnell etwas in VBA läuft ist vorallem sehr stark davon abhängig, ob man "sauber" programmiert und ich muss immer wieder im Netz verstellen, dass viel schludriger Quelltext im Umlauf ist (z.B. wie du schon erkannt hast, dieses Select/Activate), der schnell mal übernommen wird ohne selber nachzudenken.
Ist halt nun die Frage ob das vielleicht der Fall ist ... hast du das Projekt übernommen/bekommen oder ist es grundauf von dir?
|