Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1628to1632
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datei öffnen: Makro starten von Berechnung

Datei öffnen: Makro starten von Berechnung
26.06.2018 10:18:52
Berechnung
Hallo,
ich konnte auf folgendes Problem noch keine Lösung hier im Forum finden.
Ich benutzte Excel 2010 und Excel 2016 und habe eine Excel-Datei mit umfangreichen VBA-Bestandteilen (Dateigröße größer 30MB).
Die Datei benötigt zum Starten rd. 1:30 min. Bestandteil der Workbook_open Prozedur ist das Ausschalten der Berechnungen auf allen Tabellenblättern, damit die Benutzung der Datei ohne Verzögerung funktioniert. Beim Berechnen selber werden dann eingabeabhängig sequentiell die Berechnungen wieder eingeschaltet und Ergebnisse produziert.
Ich bin jetzt auf der Suche nach einem Kniff, wie ich die Workbook_open Prozedur an den Anfang des Öffnen-Prozesses stellen kann, damit die Ladezeit deutlich verkürzt wird.
Im Standardmodus berechnet Excel m.E. die Datei einmal vollständig durch und startet dann erst VBA.
Ich hatte an anderer Stelle gelesen, dass z.B. über ein VB-Script erreicht werden kann, dass die beim Öffnen von Excel die VBA-Umgebung bereits "gestartet" ist, und daher auch die Workbook_open Prozedur unmittelbar durchgeführt wird und nicht erst im Anschluss an die Berechnung.
Dies hat bei mir allerdings nicht das erhoffte Ergebnis gebracht. Ich vermute, dass dies lediglich in einer Vorversion von Excel noch möglich war.
Auch über eine Modul-Sub "auto_open" hatte ich an anderer Stelle gelesen und es damit versucht. Hat allerdings (wie zu erwarten) auch nicht geklappt.
Habt ihr vielleicht eine Idee? Eine Fehlmeldung würde mir auch helfen, dann brauche ich nicht weiter nach Lösungen zu suchen ;-)
Vielen Dank und VG

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei öffnen: Makro starten von Berechnung
26.06.2018 11:38:13
Berechnung
Hallo Torsten,
vielen Dank für die Antwort.
An der von Nepumuk vorgeschlagene Lösung eine .EXE - Datei zu kreieren bin ich gescheitert.
Nach meinem Verständnis würde die .EXE-Datei auch nichts anderes machen, als die Datei zu öffnen.
Nur weil dies im Rahmen eines VB-Scriptes geschieht, wird meines Erachtens nichts an der Excel-Logik beim Öffnen geändert, dass zuerst die Datei einmal berechnet, und dann erst die Workbook_open - Prozedur durchlaufen wird.
Oder bin ich da falsch davor
Anzeige
AW: Datei öffnen: Makro starten von Berechnung
26.06.2018 12:53:35
Berechnung
Dann wuerde ich dir empfehlen, mal den anderen Vorschlag von Nepumuk zu probieren. Die Datei per Makro oeffnen und dort die automatische Berechnung abzuschalten. Hab das jetzt auch noch nicht versucht, aber ist vielleicht einen Versuch wert.
Code fuer das abschalten der autom. Berechnung:

Application.Calculation = xlManual
Gruss Torsten
AW: Datei öffnen: Makro starten von Berechnung
26.06.2018 17:50:55
Berechnung
Hallo Torsten,
hab es jetzt mal so versucht.
Sub test()
Application.Calculation = xlCalculationManual
Workbooks.Open "E:\Datei.xlsm"
End Sub
Die Datei wurde zwar geöffnet, aber es wurde trotzdem berechnet.
Anzeige
AW: Datei öffnen: Makro starten von Berechnung
27.06.2018 07:10:01
Berechnung
Hi Niels,
habe folgendes in einem englisch sprachigen Forum gefunden. Dort wird gesagt, dass das Workbook mit manueller Berechnung gespeichert werden muss, damit es beim naechsten Oeffnen auch auf manuell ist. Also versuch mal folgenden Code. Habe die Kommentare uebersetzt.

Option Explicit
'when you open the workbook, switches calculation to manual
'wenn du das Workbook oeffnest, schaltet es auf manuell
Private Sub Workbook_Open()
Application.Calculation = xlManual
End Sub
'when you click save, turn off Calculate Before Save
'wenn du auf speichern klickst, schalte Calculate Before Save aus
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Application.CalculateBeforeSave = False
End Sub
'after the save, switch back to normal
'nach dem speichern, schalte wieder auf normal
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
Application.CalculateBeforeSave = True
End Sub
Probier das noch mal aus. Sonst weiss ich auch nicht weiter.
Gruss Torsten
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige