Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Speichern Excel (mit VBA) extrem langsam

Speichern Excel (mit VBA) extrem langsam
24.11.2004 16:01:03
RoadRunner
Hallo,
ich habe eine zwischenzeitlich halbwegs komplexe XL/VBA-Anwendung entwickelt, die aus verschiedenen Arbeitsblättern, UserForms und Modulen besteht. Die entsprechende XLS ist (nur) 860 KB groß. Alle Funktionen sind in der Anwendung performant; auch eine Neuberechnung (manuell/per VBA) der Arbeitsmappe dauert nicht lange.
Allerdings habe ich mit der XLS-Datei das Problem, dass das Speichern derselben eine halbe Ewigkeit (mehr als 10 Sekunden) dauert!
Von den (ca. 10) Blättern werden jeweils nur wenige Zellen genutzt; alle anderen Zellen sind komplett leer (auch Formate). Habe auch schon testweise alle Blätter gelöscht - keine Besserung. Umgekehrt habe ich testweise die Blätter behalten und UserForms und Module gelöscht: keine Besserung. Schneller wird's nur, wenn ich alles lösche...;-(
Zudem ist mirr aufgefallen, dass die Dateigröße erheblich anwächst, wenn man das VBA in verschiedene Modulen strukturiert; packt man alles in ein Modul wird die Datei kleiner und das Speichern geht einen Tick schneller.
Speicher ich im VBE dauert dies auch so lange. Speichert die XLS immer alle VBE-Objekte mit, auch wenn man "nur" in Excel Daten geändert hat?
Hat jemand hierzu eine Idee?
Liegt dies an der Dateigröße/-zusammensetzung?
Oder ist dies für Excel "normal"?
Vielen Dank für die Unterstützung!
Anzeige
AW: Speichern Excel (mit VBA) extrem langsam
Andy
scheinbar ist es normal.
eine meiner dateien hatte mal 17 userforms, 5 arbeitsblätter und 3 module. die größe is knapp 500 kb.
das speichern dauert letzendlich auch gute 6 sekunden.
keine ahnung was excel da veranstaltet, aber um die paar sekunden is es doch auch nicht schade, oder?
ciao, Andy!
Anzeige
AW: Speichern Excel (mit VBA) extrem langsam
RoadRunner
Hallo Andy,
doch, leider ist es schade um die Sekunden.
Entsprechendes Tool wird von ca. 40 Mann (und Frauen) täglich benutzt und das "lange" Speichern macht dieses benutzerunfreundlich. Zudem speichert ja der gebrannte Excel-Anwender nicht nur nach Abschluss aller Erfassungen einmal...
VG
RoadRunner
Anzeige
AW: Speichern Excel (mit VBA) extrem langsam
xule
Hallo
Auf den UserForms sind ja auch noch einige Button, Labels, Textboxen usw.
Sie dir mal die Eigenschaftsliste von den einzelnen Elementen an. Für jedes Element wird jede Eigenschaft festgelegt. Diese muß ja irgenwo gespeichert werden. Das braucht schon ein wenig Platz.
Allein die leere UF hat schon 32 Eigenschaften. 2 Button (a 28 Eigenschaften) und eine Textbox (42 Eigenschaften) drauf plus Code dafür ..
Merk dir das mal ohne es aufzuschreiben..... :-)
Gruß UD
Anzeige
AW: Speichern Excel (mit VBA) extrem langsam
RoadRunner
Hallo UD,
dann aber sollte das Speichern schneller sein, wenn ich die UFs lösche, oder!?
Das habe ich getan und die Datei mehrfach wieder geöffnet und gesschlossen.
Das Speichern dauert immer noch "ewig".
Gruß RoadRunner
AW: Speichern Excel (mit VBA) extrem langsam
Ingolf
Hallo Roadrunner,
eine Idee hätte ich dazu schon. Ich vermute aber, dass du da schon selbst draufgekommen bist aber wegen des hohen Arbeitsaufwandes noch auf bessere Ideen wartest. Du könntest natürlich den Programmcode und die Daten voneinander trennen. Das heißt der Programmcode inklusive aller UserForms etc. kommt in eine Datei und sämtliche Arbeitsblätter mit den bearbeiteten Daten, Formatierungen etc. in eine andere. Gespeichert wird dann immer nur die Datendatei und das geht ohne Programmmodule und programmspezifische Objekte bestimmt deutlich schneller. Aber dafür müsstest du natürlich sämtliche Bezüge in deinem Programmcode prüfen und gegebenenfalls anpassen.
Ist zwar nur der letzte Notnagel aber vielleicht auch die einzige Möglichkeit.
Gruß Ingolf
Anzeige
AW: Speichern Excel (mit VBA) extrem langsam
RoadRunner
Hallo Ingolf,
vielen Dank für den Tipp.
Die Idee hatte ich tatsächlich auch schon, glaube aber, dass dies eine ziemliche "Schweinerei" wird bzw. bin ich mir so aus dem Stegreif gar nicht so sicher, ob man das für alle Funktionen hinbekommt...
Könnte man dann die Module/UFs auch in ein XLA packen?
Viele Grüße
RoadRunner
Anzeige
AW: Speichern Excel (mit VBA) extrem langsam
Ingolf
Hallo Roadrunner,
ich sehe keine Probleme, das als .xla-Datei zu machen und kann mir auch keine Funktionen vorstellen, die mit dieser Programmorganisation evtl. ein Problem hätte, laß mich aber auch gerne eines Besseren belehren. Ich selbst habe nur ein einziges solches Makro am Laufen und sonst auch keine Erfahrung damit.
Gruß Ingolf
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Speichern von Excel-Dateien mit VBA: Tipps und Tricks


Schritt-für-Schritt-Anleitung

  1. VBA öffnen: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Modul erstellen: Klicke mit der rechten Maustaste auf "VBAProject (deinWorkbookName)", gehe auf "Einfügen" und wähle "Modul".

  3. Code eingeben: Füge folgenden Code ein, um die Datei zu speichern:

    Sub Speichern()
       ThisWorkbook.Save
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT + F8, wähle das Makro "Speichern" aus und klicke auf "Ausführen".

Wenn du nun das Makro ausführst, sollte das Speichern der Excel-Datei schneller gehen, als wenn du es manuell machst.


Häufige Fehler und Lösungen

  • Problem: Excel speichert nicht oder benötigt zu viel Zeit.

    • Lösung: Überprüfe, ob leere Zellen oder nicht verwendete Formate in deinem Arbeitsblatt vorhanden sind. Diese können die Dateigröße unnötig erhöhen und die Speichergeschwindigkeit verringern.
  • Problem: Excel extrem langsam beim Speichern.

    • Lösung: Trenne den Programmcode und die Daten in separate Dateien, wie es einige Benutzer vorgeschlagen haben. Dies kann das Speichern deutlich beschleunigen.

Alternative Methoden

  • Speichern unter: Manchmal kann es helfen, die Datei über "Speichern unter" an einem anderen Ort zu speichern. Dies kann dazu beitragen, dass Excel die Datei neu indiziert und schneller speichert.

  • Dateiformat wechseln: Speichere die Datei im .xlsm-Format (Makro-fähige Excel-Datei). Manchmal kann dies die Speichergeschwindigkeit erhöhen.

  • VBA Code optimieren: Reduziere die Anzahl der UserForms und Module. Weniger Objekte bedeuten weniger Speicherplatz und schnellere Zugriffszeiten.


Praktische Beispiele

  1. Speichern einer Arbeitsmappe:

    • Wenn du große Datenmengen hast, die du regelmäßig speicherst, kannst du den oben genannten VBA-Code anpassen, um spezifische Blätter oder Bereiche zu speichern.
    Sub SpeichernSpezifisch()
       Sheets("Datenblatt1").Save
    End Sub
  2. Automatisiertes Speichern:

    • Du kannst auch ein Makro erstellen, das automatisch in bestimmten Intervallen speichert:
    Sub AutomatischesSpeichern()
       Application.OnTime Now + TimeValue("00:05:00"), "Speichern"
    End Sub

Tipps für Profis

  • Regelmäßiges Speichern: Stelle sicher, dass du häufig speicherst, um Datenverluste zu vermeiden. Automatisiere diesen Prozess mithilfe von VBA.

  • Dateigröße minimieren: Reduziere die Anzahl der verwendeten Formate und das Vorhandensein leerer Zellen, um die Dateigröße zu verkleinern. Dies könnte helfen, dass Excel beim Speichern weniger Zeit benötigt.

  • Excel-Version beachten: Die Performance kann je nach Excel-Version variieren. Nutze die neueste Version für optimale Ergebnisse.


FAQ: Häufige Fragen

1. Warum dauert das Speichern meiner Excel-Datei so lange?
Das Speichern kann lange dauern, wenn die Datei viele leere Zellen, umfangreiche Formate oder zahlreiche UserForms enthält.

2. Wie kann ich die Speichergeschwindigkeit verbessern?
Trenne den Code von den Daten, reduziere die Anzahl der UserForms und stelle sicher, dass du nur die notwendigen Formate verwendest.

3. Was kann ich tun, wenn Excel nicht speichert?
Überprüfe, ob die Datei schreibgeschützt ist oder ob du genügend Speicherplatz auf deinem Laufwerk hast. In einigen Fällen kann auch ein Neustart von Excel helfen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige