Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Performance erhöhen durch Ausblenden von Tabellen
#1
Guten Morgen Leute!

Ich sitze momentan vor einer riesigen Datei, welche durch diverse Verweise auf andere Dokumente eine relativ große Dateigröße besitzt.
Ziel ist es die Datei ein wenig zu "optimieren". Das einzige welches ich bisher kennengelernt habe, ist die Berechnungsoptionen auf manuell zu stellen.

Ein zweiter Ansatz könnte folgendermaßen aufgebaut werden, die Frage ist nur dies wirklich die Performance erhöhen lässt.
Ich lasse mittels Workbook_Open eine Userform beim Öffnen der Datei aufploppen, welche mir die Tabellen auflistet, welche vorhanden sind und der Anwender nur noch auswählt, welche er betrachten möchte.
Die restlichen Tabellen werden ausgeblendet und jeweils die Berechnungsoptionen auf manuell gesetzt.

Was sagt ihr zu diesem Ansatz?
Antworten Top
#2
Hallo Joshua,

ich glaube nicht, dass das simple ausblenden von Tabellen eine Gescheindigkeitsverbesserung bringt.

Ich kenne zwar Deine Datei nicht, würde aber vermuten, dass viele Berechnungen/Formeln verwendet werden. Hier könnte man theoretisch ansetzen und diese ggf. optimieren.

Zudem wäre Power Query eine weitere Möglichkeit um die externen Daten zu "verwalten".
Gruß
Michael
Antworten Top
#3
Vielen Dank für deine Antwort.
PowerQuery ist leider für dieses Dokument nicht hilfreichend. bzw. mine Kentnisse würden nicht ausreichen. Ziel ist es auch ohne PowerQuery und Pivot auszukommen.


Naja, es geht nicht nur ums ausblenden, sondern ebenfalls um die Berechnungsoptionen.
Alles ausgeblendeten werden entsprechend auch auf manuell gesetzt.
Hätte dies tatächlich kieine performante Steigerung?
Antworten Top
#4
Servus Joshua,

wie Michael schon schreibt, könnte eine Optimierung Deiner Formeln schon enorme Performance bringen.
Auch könnte man darüber nachdenken, die ein oder andere Formel durch ein VBA-Script zu ersetzen. Ein gute VBA Programmierung kann um ein zigfaches schneller sein, als die Verwendung von herkömmlichen Formeln.

Aber Deine Idee, die automatische Formelberechnung auszuschalten, hat auch etwas. Hier solltest Du jedoch nach folgendem Schema vorgehen.

Zunächst die automatische Formelberechnung für die Application ausschalten
Danach die Berechnung der einzelnen Tabellenblätter ausschalten.
Nun die Berechnung der Application wieder auf automatisch setzen.
Erst jetzt solltest Du die Berechnung einzelnen (ausgewählter) Tabellenblätter wieder anschalten.

Ein kleines Beispiel:

Code:
Private Sub Workbook_Open()
    Dim WS As Worksheet
   
    Application.Calculation = xlCalculationManual
    For Each WS In ThisWorkbook.Worksheets
        WS.EnableCalculation = False
    Next WS
    Application.Calculation = xlCalculationAutomatic
    ThisWorkbook.Worksheets("Tabelle1").EnableCalculation = True
    Set WS = Nothing

End Sub   

LG Gerd
Antworten Top
#5
Hallo Gerd.
Vielen Dank für dein Konzept!

Wie schaut die Berechnungsoption nach dem Schließen der Datei aus?
Mit "Application.Calculation = xlCalculationAutomatic" umgehe ich die Problematik, dass Excel die Berechnungsoptionen nur projektweit und nicht global setzt, richtig?


Gruß
Antworten Top
#6
Ja, genau so ist es. Aber teste mal selbst!

LG Gerd
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste