Lange Ladezeiten (5min) für Excel-Datei mit VBA und Makros!
Ich stehe nun kurz vor der Fertigstellung eines Excel-basierenden Konfigurators. Sobald ich jetzt jedoch Änderungen durchführen will, resultiert es in EXTREM verlängerten Ladezeiten.
Es ist wie verhext.
Wir verwenden seit mehreren Jahren eine einfache Excel-Kalkulationshilfe, die es dem Vertrieb einfach macht unsere Produkte zu kalkulieren.
Dieses Jahr habe ich eine neue Version dazu erstellt mit wesentlich mehr Infos/Daten/Möglichkeiten.
Es wurden viele neue Funktionen integriert und das Teil eigentlich komplett neu erstellt/programmiert.
Mittlerweilen sind 2-3 Wochen Arbeit hineingeflossen und stehe nun kurz vor der Fertigstellung.
Die Exceldatei läuft einwandfrei und ist absolut in Ordnung. Ladezeiten sind ebenfalls ok. Im geöffneten Zustand ebenfalls sehr schnelle Handhabe.
Sobald ich jedoch die geringfügigste Änderung an der aktuellen Datei durchführe, (z.B. unter neuem Namen speichere) erhöht sich die Ladezeit drastisch. Je nach Rechnergeschwindkeit auf 3-10min.
Excel 2010 startet, läd die Datei und beginnt dann beim Öffnen der Datei bei 94-98% für etliche Minuten hängen zu bleiben. Die Prozessorauslastung ist dann bei 100%.
Nach dieser langen Wartezeit funktioniert die Datei wieder einwandfrei, als ob nie etwas gewesen wäre.
Da für mich die Programmierung im VBA-Quellcode bis vor 3 Monaten noch komplettes Neuland darstellte, vermute ich hier die größte Fehlerquelle.
Der Fehler trat vor einigen Wochen bereits auf, konnte dann aber mit eine Microsoft Office Repair-Tool wieder (kurzzeitig) repariert werden. Das Tool bemängelte die "bedingten Formattierungen"
Daten zum System:
- Excel-Datei mit ca. 3,4 MB
- Dateiformat: *.xlsm
- Programmiert mit Office2010PlusSP1 32bit auf x64 System.
häufig verwendete VBA-Befehle:
1. If/Else/EndIf
2. Static oldTarget
' Ausführung des Makros bei Differenz von 2 Feldern - Abgleich auf Ungleichheit (für Bestelltext)
Static oldTarget As String
If oldTarget = "" Then oldTarget = Range("A1")
If Range("A1") <> oldTarget Then
Call Bestelltext_IP
oldTarget = Range("A1")
Else
Exit Sub
End If
3. Ausführen des Bestelltexts
If Intersect(Target, Range("C19")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Call Bestelltext_generieren
Application.EnableEvents = True
4. ScreenUpdates
Application.ScreenUpdating = False
Worksheets("Worksheet123").Range("A1").Copy
Worksheets("Produkt1").Range("B36:G51").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.ScreenUpdating = True
End Sub
Ich bin mir sicher, dass man das bestimmt noch viel schöner und professioneller hätte umsetzen können,
aber es erfüllt seinen Zweck.
Meine Vermutungen für den Fehler bzw. mögliche Lösungsansätze:
- Einfacher VBA-Anfängerfehler (Excel aktualisiert die Formeln während des Ladens extrem häufig)
- Sicherheitsprüfung von Office erhöht die Ladezeit
- Datei wurde vollständig passwortgeschützt (Quelltext, Arbeitsmappe, Struktur) und behindert das Öffnen
- Dateiformatproblem (xlsm)
- bedingte Formatierungen
- Nutzung eines "Repairtools"
- Bereits bekannter Bug/Fehler bei Verwendung eines VBA-Befehls in Excel
Ich freue mich auf Eure Unterstützung!
Es ist wie verhext.
Wir verwenden seit mehreren Jahren eine einfache Excel-Kalkulationshilfe, die es dem Vertrieb einfach macht unsere Produkte zu kalkulieren.
Dieses Jahr habe ich eine neue Version dazu erstellt mit wesentlich mehr Infos/Daten/Möglichkeiten.
Es wurden viele neue Funktionen integriert und das Teil eigentlich komplett neu erstellt/programmiert.
Mittlerweilen sind 2-3 Wochen Arbeit hineingeflossen und stehe nun kurz vor der Fertigstellung.
Die Exceldatei läuft einwandfrei und ist absolut in Ordnung. Ladezeiten sind ebenfalls ok. Im geöffneten Zustand ebenfalls sehr schnelle Handhabe.
Sobald ich jedoch die geringfügigste Änderung an der aktuellen Datei durchführe, (z.B. unter neuem Namen speichere) erhöht sich die Ladezeit drastisch. Je nach Rechnergeschwindkeit auf 3-10min.
Excel 2010 startet, läd die Datei und beginnt dann beim Öffnen der Datei bei 94-98% für etliche Minuten hängen zu bleiben. Die Prozessorauslastung ist dann bei 100%.
Nach dieser langen Wartezeit funktioniert die Datei wieder einwandfrei, als ob nie etwas gewesen wäre.
Da für mich die Programmierung im VBA-Quellcode bis vor 3 Monaten noch komplettes Neuland darstellte, vermute ich hier die größte Fehlerquelle.
Der Fehler trat vor einigen Wochen bereits auf, konnte dann aber mit eine Microsoft Office Repair-Tool wieder (kurzzeitig) repariert werden. Das Tool bemängelte die "bedingten Formattierungen"
Daten zum System:
- Excel-Datei mit ca. 3,4 MB
- Dateiformat: *.xlsm
- Programmiert mit Office2010PlusSP1 32bit auf x64 System.
häufig verwendete VBA-Befehle:
1. If/Else/EndIf
2. Static oldTarget
' Ausführung des Makros bei Differenz von 2 Feldern - Abgleich auf Ungleichheit (für Bestelltext)
Static oldTarget As String
If oldTarget = "" Then oldTarget = Range("A1")
If Range("A1") <> oldTarget Then
Call Bestelltext_IP
oldTarget = Range("A1")
Else
Exit Sub
End If
3. Ausführen des Bestelltexts
If Intersect(Target, Range("C19")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Call Bestelltext_generieren
Application.EnableEvents = True
4. ScreenUpdates
Application.ScreenUpdating = False
Worksheets("Worksheet123").Range("A1").Copy
Worksheets("Produkt1").Range("B36:G51").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.ScreenUpdating = True
End Sub
Ich bin mir sicher, dass man das bestimmt noch viel schöner und professioneller hätte umsetzen können,
aber es erfüllt seinen Zweck.
Meine Vermutungen für den Fehler bzw. mögliche Lösungsansätze:
- Einfacher VBA-Anfängerfehler (Excel aktualisiert die Formeln während des Ladens extrem häufig)
- Sicherheitsprüfung von Office erhöht die Ladezeit
- Datei wurde vollständig passwortgeschützt (Quelltext, Arbeitsmappe, Struktur) und behindert das Öffnen
- Dateiformatproblem (xlsm)
- bedingte Formatierungen
- Nutzung eines "Repairtools"
- Bereits bekannter Bug/Fehler bei Verwendung eines VBA-Befehls in Excel
Ich freue mich auf Eure Unterstützung!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 184324
Url: https://administrator.de/forum/lange-ladezeiten-5min-fuer-excel-datei-mit-vba-und-makros-184324.html
Ausgedruckt am: 23.12.2024 um 03:12 Uhr
4 Kommentare
Neuester Kommentar
Moin XtremeCase,
Du hast es sicher schon bei der Beschreibung des Problems gemerkt - es ist ein sehr komplexes. Noch umfangreicher dürfte es werden, alle Möglichkeiten per Frage-/Antwortspiel hier zu posten und dann eventuell doch haarscharf am eigentlichen Problem (so es nur ein einziges gibt) vorbei zu raten. Eine einzige Zeile Code, an sich richtig geschrieben, aber zur falschen Zeit an der unpassenden Stelle ausgeführt, auf eine Seite bezogen, die eine Handvoll bedingter Formatierungen zu viel enthält - und so weiter ...
Es wäre aus meiner Erfahrung der bessere Weg, die Datei per PM den/dem Hilfswilligen zukommen zu lassen und die Fehlerbereinigungen bzw. Ratschläge in das Original einzupflegen - und, ganz wichtig, die Essenz hier zu posten - auch kein kleines Stück Arbeit.
Freundliche Grüße von der Insel - Mario
Du hast es sicher schon bei der Beschreibung des Problems gemerkt - es ist ein sehr komplexes. Noch umfangreicher dürfte es werden, alle Möglichkeiten per Frage-/Antwortspiel hier zu posten und dann eventuell doch haarscharf am eigentlichen Problem (so es nur ein einziges gibt) vorbei zu raten. Eine einzige Zeile Code, an sich richtig geschrieben, aber zur falschen Zeit an der unpassenden Stelle ausgeführt, auf eine Seite bezogen, die eine Handvoll bedingter Formatierungen zu viel enthält - und so weiter ...
Es wäre aus meiner Erfahrung der bessere Weg, die Datei per PM den/dem Hilfswilligen zukommen zu lassen und die Fehlerbereinigungen bzw. Ratschläge in das Original einzupflegen - und, ganz wichtig, die Essenz hier zu posten - auch kein kleines Stück Arbeit.
Freundliche Grüße von der Insel - Mario
Moin Moin,
Wo liegt die Ursprungsdatei? lokal oder auf Server / NAS / ?
Wo speicherst du die neue Datei? lokal oder auf Server / NAS / ?
?? Anzahl Spalten?
?? Anzahl Zeilen?
?? Anzahl Mappen?
?? Anzahl Bedingte Formatierungen?
Wann wird dein Code ausgeführt? Was ist der Trigger?
Mache ein Kopie der Datei, entferne den VBA-Code Prozedur für Prozedur und teste dann.
Grüße aus Rostock
Wolfgang
(Netwolf)
Sobald ich jedoch die geringfügigste Änderung an der aktuellen Datei durchführe, (z.B. unter neuem Namen speichere)
das ist keine geringfügige Änderung!!!erhöht sich die Ladezeit drastisch.
der Ursprungsdatei, oder der neuen Datei?Wo liegt die Ursprungsdatei? lokal oder auf Server / NAS / ?
Wo speicherst du die neue Datei? lokal oder auf Server / NAS / ?
Excel 2010 startet, läd die Datei und beginnt dann beim Öffnen der Datei bei 94-98% für etliche Minuten hängen
zu bleiben. Die Prozessorauslastung ist dann bei 100%.
Nach dieser langen Wartezeit funktioniert die Datei wieder einwandfrei, als ob nie etwas gewesen wäre.
d.h. auch spätere Starts laufen ohne Verzögerung ab?zu bleiben. Die Prozessorauslastung ist dann bei 100%.
Nach dieser langen Wartezeit funktioniert die Datei wieder einwandfrei, als ob nie etwas gewesen wäre.
Da für mich die Programmierung im VBA-Quellcode bis vor 3 Monaten noch komplettes Neuland darstellte, vermute ich hier die größte Fehlerquelle.
vermutlich nichtDer Fehler trat vor einigen Wochen bereits auf, konnte dann aber mit eine Microsoft Office Repair-Tool wieder (kurzzeitig)
repariert werden. Das Tool bemängelte die "bedingten Formattierungen"
also sollte klar sein, woran es liegt! Darf ich dich bitten, in einem Forum immer die komplette Fehlermeldung zu posten und nicht nur, was du daraus interpretieren kannst?repariert werden. Das Tool bemängelte die "bedingten Formattierungen"
Daten zum System:
- Excel-Datei mit ca. 3,4 MB
- Dateiformat: *.xlsm
- Programmiert mit Office2010PlusSP1 32bit auf x64 System.
schön, und das Wichtige:- Excel-Datei mit ca. 3,4 MB
- Dateiformat: *.xlsm
- Programmiert mit Office2010PlusSP1 32bit auf x64 System.
?? Anzahl Spalten?
?? Anzahl Zeilen?
?? Anzahl Mappen?
?? Anzahl Bedingte Formatierungen?
Meine Vermutungen für den Fehler bzw. mögliche Lösungsansätze:
- Einfacher VBA-Anfängerfehler (Excel aktualisiert die Formeln während des Ladens extrem häufig)
Woran erkennst du das?- Einfacher VBA-Anfängerfehler (Excel aktualisiert die Formeln während des Ladens extrem häufig)
Wann wird dein Code ausgeführt? Was ist der Trigger?
Mache ein Kopie der Datei, entferne den VBA-Code Prozedur für Prozedur und teste dann.
- Sicherheitsprüfung von Office erhöht die Ladezeit
ja, aber minimal i.d.R. < 5 Sekunden- Datei wurde vollständig passwortgeschützt (Quelltext, Arbeitsmappe, Struktur) und behindert das Öffnen
mache ein Kopie der Datei, entferne die Passwörter und teste dann.- Dateiformatproblem (xlsm)
wieso? du speicherst doch wohl nicht im Kompatibilitätsmodus?- bedingte Formatierungen
wenn ich der Fehlermeldung glauben darf, wird es wohl zu 90% daran liegen- Nutzung eines "Repairtools"
während meiner Phase als Programmierer habe ich gelernt, häufig Sicherungen anzulegen, so dass eine unsichere Reparatur nie notwendig war.- Bereits bekannter Bug/Fehler bei Verwendung eines VBA-Befehls in Excel
Von welchem Befehl reden wir? Dein hier gezeigter Code kann ja wohl nicht alles sein.....um das beurteilen zu können.Grüße aus Rostock
Wolfgang
(Netwolf)