Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Unnötiger Aufruf von Benutzerdefinierter Funktion

Unnötiger Aufruf von Benutzerdefinierter Funktion
11.03.2009 10:24:35
Benutzerdefinierter
Hallo!
Ich versuche schon seit 2 Tagen folgendes Problem zu lösen:
Ausgangslage:
Ich habe mehrere Benutzerdefinierte Funktionen (UDF) geschrieben. Diese beinhalten SQL-Abfragen auf eine Accessdatenbank. Insgesamt rufe ich diese Funktionen einige hunderte mal in meiner Mappe auf. Das funktioniert wunderbar und ist sogar sehr schnell (trotz Application.Volatile (true)). Nennen wir die Arbeitsmappe mit meinen Funktionen "Mappe1"
Problem:
Wenn ich nun eine weitere Arbeitsmappe ("Mappe2") öffne berechnet Excel bei jeder Berechnung in Mappe2 die komplette Mappe1.
Anmerkung: "Mappe2 ist sehr umfangreich und beinhaltet VBA Code mit einigen Schleifen.
Lösungsversuche:
1. Lösungsversuch:
Application.Volatile (False) bzw. (True) in allen Variationen in den UDF in Mappe1. Allerdings sollte Volatile auf True stehen, da sonst meine Berechnungen in Mappe1 wegen Verschachtelungen nicht sauber laufen.
2. Lösungsversuch (in der benutzerdefinierten Funktion):
If Thisworkbook ActiveWorkbook then
Exit Function
End if
Lösungsveruch 2 ist okay aber es werden meines Erachtens noch unnötige Berechnungen durchgeführt, was deutlich auf die Geschwindigkeit geht.
Frage:
Kann man Excel generell und etwas eleganter mitteilen, dass nur die Mappe2 und nicht auch Mappe1 berechnet werden soll? Für mich wäre das sowieso logisch, da es keinerlei Verbindung zwischen den zwei Mappen gibt.
Vielen Dank!
Mario
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Unnötiger Aufruf von Benutzerdefinierter Funktion
11.03.2009 13:13:19
Benutzerdefinierter
Hallo Sepp!
Vielen Dank für die schnelle Antwort.
Dann kann man wohl nix machen. So ne Schwäche hätt ich Excel gar nicht zugetraut!
Zur Vollständigkeit für alle andere, meine Lösung 2 ist wie folgt korrekt:
If Thisworkbook.name ActiveWorkbook.name then
Exit Function
End if
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige