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

Makro auszuführen dauert sehr lange

Forumthread: Makro auszuführen dauert sehr lange

Makro auszuführen dauert sehr lange
19.08.2016 12:22:05
Nicolai
Hallo zusammen,
ich hatte hier aus dem Forum folgenden Code bekommen:
Z1 = TimeValue(TextBox1.Text) / TimeValue("00:15") + 1
Z2 = TimeValue(TextBox2.Text) / TimeValue("00:15") + 1
For Z = Z1 To Z2
Cells(Z, 2).Value = Cells(Z, 2).Value + 1
Next
https://www.herber.de/forum/archiv/1508to1512/t1508005.htm
Der funktioniert auch super, allerdings wenn ich eine große Zeitspanne eingebe 14:00-20:00 dauert das ausführen des Codes sehr lange.
Hat jemand von euch ein Lösungsvorschlag welchen den Prozess verbessern würde?
Vielen Dank & Grüße,
Nicolai
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro auszuführen dauert sehr lange
19.08.2016 12:35:11
Werner
Hallo Nicolai,
versuch mal am Anfang des Makros mit
Application.ScreenUpdating = False 'Bildschirmaktualisierung ausschalten
Application.Calculation = xlCalculationManual 'automat.Berechnung ausschalten
und am Ende mit
Application.Calculation = xlCalculationAutomatic 'automat.Berechnung einschalten
Application.ScreenUpdating = True 'Bildschirmaktualisierung einschalten
die Bildschirmaktualisierung und die automatische Berechnung aus und wieder einzuschalten.
Gruß Werner
Anzeige
AW: Makro auszuführen dauert sehr lange
19.08.2016 13:15:52
Nicolai
Hallo Werner,
vielen dank, ScreenUpdating hatte ich sogar mit drin.
Den zweiten hatten ich nicht drin, nun habe ich ihn eingebaut und es funktioniert sehr viel schneller.
Was genau wird damit auf manuell geschaltet, also was ist da der Unterscheid zwischen manuell und autom., das würde mich interessieren.
Vielen Dank & Grüße,
Nicolai
Anzeige
AW: Makro auszuführen dauert sehr lange
19.08.2016 13:23:18
Werner
Hallo Nicolai,
da wird die automatische Berechnung der Formeln im Tabellenblatt ausgeschaltet. Es kann sein, dass du Formeln auf dem Blatt hast, die bei jeder Änderung im Blatt alle neu berechnet werden und das kann dann halt dauern.
Aber hast du dir den Vorschlag von Daniel mal angeschaut?
Gruß Werner
Anzeige
AW: Makro auszuführen dauert sehr lange
19.08.2016 15:59:18
Nicolai
Ich hab beides mal getestet.
Sind beide super, ich werde auch nochmal testen, beide Versionen gleichzeitig zu benutzen.
Vielen Vielen Dank euch beiden.
Viele Grüße,
Nicolai
AW: Makro auszuführen dauert sehr lange
19.08.2016 16:28:22
Daniel
Hi
wenn du beim Programmieren die Eigenarten von Excelberücksichtigst und die passenden Excelwerkzeuge auch in VBA verwendest, bringt das Ausschalten der Bildschirmaktualisierung und der Automatischen Neuberechnung nur in wenigen Fällen noch eine signifikante Verbesserung der Ausführungszeit.
Gruß Daniel
Anzeige
AW: Gerne u. Danke für die Rückmeldung. o.w.T
19.08.2016 16:31:22
Werner
AW: Makro auszuführen dauert sehr lange
19.08.2016 13:04:28
Daniel
Hi
sehr schnell geht das so:
1. schreibe in eine freie Zelle (Excel hat genügend davon) den Wert 1
2. kopiere diese Zelle
3. füge das kopierte als Wert in die betroffenen Zellen ein, mit dem Vorgang Addieren
sieht als Makrocode dann so aus:
Cells(1, 1).Value = 1
Cells(1, 1).Copy
Range(Cells(Z1, 2), Cells(Z2, 2)).PasteSpecial xlpastevalues, Operation:=xladd
Cells(1, 1).ClearContents
du kannst hier im Prinzip jede leere Zelle verwenden, sie darf nur nicht innerhalb des Zellbereichs liegen, zu dem der Wert hinzuaddiert werden soll.
Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Makros optimieren: So läuft Dein Code schneller


Schritt-für-Schritt-Anleitung

  1. Makro öffnen: Öffne das VBA-Fenster in Excel (Alt + F11).

  2. Code anpassen: Füge am Anfang Deines Makros folgende Zeilen hinzu, um die Bildschirmaktualisierung und die automatische Berechnung auszuschalten:

    Application.ScreenUpdating = False 'Bildschirmaktualisierung ausschalten
    Application.Calculation = xlCalculationManual 'automatische Berechnung ausschalten
  3. Makro ausführen: Führe Dein Makro wie gewohnt aus. Achte darauf, dass Du eine große Zeitspanne eingibst, um die Ausführungszeit zu testen.

  4. Am Ende wieder aktivieren: Füge am Ende Deines Makros folgendes hinzu, um die Einstellungen zurückzusetzen:

    Application.Calculation = xlCalculationAutomatic 'automatische Berechnung einschalten
    Application.ScreenUpdating = True 'Bildschirmaktualisierung einschalten

Häufige Fehler und Lösungen

  • Fehler: Excel Berechnung dauert lange
    Wenn Deine Excel-Berechnung lange dauert, überprüfe, ob Du Formeln hast, die bei jeder Änderung neu berechnet werden. Dies kann die Leistung erheblich beeinträchtigen. Das Ausschalten der automatischen Berechnung, wie oben beschrieben, kann helfen.

  • Fehler: Makro läuft nicht wie erwartet
    Stelle sicher, dass alle Variablen korrekt deklariert sind und dass die Zellreferenzen genau sind. Ein kleiner Fehler in der Zelladresse kann dazu führen, dass das Makro nicht ordnungsgemäß funktioniert.


Alternative Methoden

Eine alternative Methode zur Optimierung der Ausführung ist die Verwendung von VBA, um Werte direkt zu addieren, anstatt jede Zelle einzeln zu bearbeiten. Hier ist ein Beispiel, wie Du dies tun kannst:

Cells(1, 1).Value = 1
Cells(1, 1).Copy
Range(Cells(Z1, 2), Cells(Z2, 2)).PasteSpecial xlPasteValues, Operation:=xlAdd
Cells(1, 1).ClearContents

Diese Methode kann helfen, wenn Du eine große Anzahl von Zellen bearbeiten musst.


Praktische Beispiele

Angenommen, Du möchtest die Werte zwischen 14:00 und 20:00 Uhr in eine Excel-Tabelle einfügen. Du kannst den folgenden Code verwenden:

Z1 = TimeValue("14:00") / TimeValue("00:15") + 1
Z2 = TimeValue("20:00") / TimeValue("00:15") + 1
For Z = Z1 To Z2
    Cells(Z, 2).Value = Cells(Z, 2).Value + 1
Next

Wenn die Ausführung jedoch zu lange dauert, wende die oben genannten Optimierungen an.


Tipps für Profis

  • Verwende Arrays: Wenn Du mit großen Datenmengen arbeitest, kann es effizienter sein, die Daten in ein Array zu laden, die Berechnungen durchzuführen und die Ergebnisse dann zurück in die Zellen zu schreiben.

  • Vermeide Bildschirmaktualisierungen: Dies kann erhebliche Leistungsgewinne bringen, insbesondere bei komplexen oder großen Datenmengen.

  • Teste Deine Makros: Führe immer Tests durch, um sicherzustellen, dass die Änderungen die gewünschten Ergebnisse liefern und die Ausführungszeit verkürzen.


FAQ: Häufige Fragen

1. Warum dauert das Ausführen meines Makros so lange?
Das kann an vielen Faktoren liegen, unter anderem an der Anzahl der Zellen, die bearbeitet werden, und ob automatische Berechnungen aktiviert sind. Das Deaktivieren der Bildschirmaktualisierung und der automatischen Berechnung kann oft helfen.

2. Was bedeutet "automatische Berechnung ausschalten"?
Wenn die automatische Berechnung deaktiviert ist, aktualisiert Excel die Formeln nicht automatisch, was die Ausführungszeit Deiner Makros erheblich verkürzen kann. Du musst sicherstellen, dass Du die Berechnung wieder aktivierst, wenn das Makro abgeschlossen ist.

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