Live-Forum - Die aktuellen Beiträge
Datum
Titel
19.04.2024 12:23:24
19.04.2024 11:45:34
Anzeige
Archiv - Navigation
1108to1112
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

Makro dauert ewig

Makro dauert ewig
Larissa
Noch eine Frage,
dieses Makro dauert eeeeeeewig lange! Woran liegt das?
Sub leerzeichen()
Dim cells As Range
For Each cells In Sheets("AB5").Range("P3:W35")
cells = LTrim(cells)
Next cells
End Sub

Kann man das irgendwie beschleunigen?
Das wäre toll.
Gruß,
Larissa

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

Betreff
Benutzer
Anzeige
AW: Makro dauert ewig
11.10.2009 23:22:19
orange
Hallo Larissa,
ich bin auch nicht der Profi, aber das kann man sehr einfach testen. Du musst einfach nur den Code im VBA debuggen und dann sieht man schon wo es hängt. Dazu einfach einen Haltepunkt setzten, z. B. vor Zeile "for ..." und dann den Debugger starten und mit F8 Schritt für Schritt durch gehen.
Gruß
orange
AW: Makro dauert ewig
11.10.2009 23:27:01
Tino
Hallo,
sollte etwas schneller sein
Sub leerzeichen()
Dim Bereich As Range
Dim meAr, A As Long, B As Long
Set Bereich = Sheets("AB5").Range("P3:W35")
meAr = Bereich
For A = 1 To UBound(meAr)
For B = 1 To UBound(meAr, 2)
meAr(A, B) = LTrim(meAr(A, B))
Next B
Next A
Bereich = meAr
End Sub
Hinzukommt Cells ist ein VBA Befehl der zum ansprechen von Zellen verwendet wird,
sowas sollte man nie als Variable einsetzen.
Gruß Tino
Anzeige
Jetzt flutscht es schneller - Danke
11.10.2009 23:54:04
Larissa
Super,
das Makro von Tino funktioniert schon mal viel schneller.
Die anderen Tipps werde ich mir auch merken und versuchen zu gegebener Zeit umzusetzen.
Vielen Dank, Larissa
AW: Makro dauert ewig
11.10.2009 23:44:16
Daniel
Hi
das kann verschiedene Ursachen haben:
a) deine Datei enthält komplexe Formeln, die sich auf diese Zellen beziehen oder volatil sind (dh. immer neu berechnet werden, unabhängig vom Zellbezug). Dann wird bei jedem Zelleintrag (dh 264x) eine Neuberechnung des Tabellenblatts ausgeführt. Je nach Komplexität der Berechnung kann das natürlich dauern
b) deine Datei enthält für das Tabellenblatt "AB5" ein WORKSHEET_CHANGE-Makro (im Modul es Tabellenblatts), das dann bei jedem Zelleintrag gestartet wird.
im Fall A muss kann man die Neuberechnung mit APPLICATION.CALCULATION = FALSE abschalten, im Fall B mit APPLICATION.ENABLEEVENTS = FALSE den Start des EVENT-Makros verhindern.
die Befehle müssen an den Beginn des Makros gestellt werden und am Ende müssen die Werte wieder auf TRUE gesetzt werden, da die Funktionalitäten sonst ausgeschaltet bleiben.
allerdings ist Tinos Lösung auch für diese Fälle die bessere, da hier Neuberechnung und das EVENT-Makro sowieso nur 1x gestartet würden, so daß eine Deaktivierung beider Funktionen nicht notwendig ist.
Gruß, Daniel
Anzeige
AW: Makro dauert ewig
12.10.2009 08:58:30
JogyB
Hi.
Um Daniels Ausführungen noch etwas hinzuzufügen:
Application.ScreenUpdating = False wäre hier auch noch sinnvoll, da sonst bei jeder Änderung des Zellinhalts dies direkt angezeigt wird. Das kann erstaunlich viel Zeit kosten.
Gruss, Jogy

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige