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

Zeitbedarf Makro Excel2003 vs 2010

Forumthread: Zeitbedarf Makro Excel2003 vs 2010

Zeitbedarf Makro Excel2003 vs 2010
Joachim
Hallo,
ich setze gerade Excel2003er Dateien nach 2010 um. Ein Makro leert einen Zellbereich, beschreibt ihn dann und verschiebt dann die Inhalte horizontal (zur besseren Lesbarkeit).
Dieses Makro braucht unter Excel2003 ca 1,5 Sekunden.
Der GLEICHE Code unter Excel2010 benötigt 25 (!!) Sekunden.
Es liegt am Verschieben. In 2003 flutscht es, in 2010 geht es Stück für Stück.
Hier ein Teil des Verschiebecode:
Range("I130").Value = Range("E130").Value
Range("E130").Value = ""
'verschieben der Ebene 1
For i = 131 To 400
If Range("F" & i) "" Then
Range("D" & i).Value = Range("F" & i).Value
Range("F" & i).Value = ""
End If
Next i
For i = 131 To 400
If Range("G" & i) "" Then
Range("E" & i).Value = Range("G" & i).Value
Range("G" & i).Value = ""
End If
Next i
For i = 131 To 400
If Range("H" & i) "" Then
Range("J" & i).Value = Range("H" & i).Value
Range("H" & i).Value = ""
End If
Next i
'verschieben der Ebene 2
For i = 131 To 400
If Range("I" & i) = "MV" Or Range("I" & i) = "UV" Then
Range("E" & i).Value = Range("I" & i).Value
Range("I" & i).Value = ""
End If
Next i
For i = 131 To 400
If Range("J" & i) "" And (Range("E" & i) = "MV" Or Range("E" & i) = "UV") Then
Range("F" & i).Value = Range("J" & i).Value
Range("J" & i).Value = ""
End If
Next i
Wie kann das möglich sein? Ist doch ein ganz einfacher Code.
Gruss
Joachim
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zeitbedarf Makro Excel2003 vs 2010
11.04.2012 13:44:07
Martin
Hallo Joachim,
Excel 2010 unterstützt wesentlich mehr Zeilen und Spalten als Excel 2003, auch der Funktionsumfang ist gestiegen. Darunter leidet natürlich die Performance (...Computer werden ja auch immer schneller).
Setze an den Anfang deines Codes folgende beiden Zeilen:
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
An das Ende deines Codes schreibst du noch:
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Miss mal die Zeit und poste sie hier im Forum.
Viele Grüße
Martin
Anzeige
AW: Zeitbedarf Makro Excel2003 vs 2010
11.04.2012 13:54:54
Joachim
Hallo Martin,
es lag am Application.Calculation. Wenn ich das auf manuell stelle, flutscht es (kleiner 1 Sek).
Lasse ich es auf Automatic, "denkt" Excel wieder.
Danke
Joachim
Vielleicht auch den Code noch ein wenig optimieren
11.04.2012 14:12:13
Martin
Hallo Joachim,
seit Excel 2007 wird sind fast alle Zellformeln "volatil" und werden nach jeder Zelländerung neu berechnet. Du solltest eventuell auch versuchen deinen Code etwas zu optimieren. Die ersten drei Schleifen könntest du auch so ersetzen (...denke ich):
    Range("D131:D400") = Range("F131:F400")
Range("F131:F400").Clear
Range("E131:E400") = Range("G131:G400")
Range("G131:G400").Clear
Range("J131:J400") = Range("H131:H400")
Range("H131:H400").Clear
Viele Grüße
Martin
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

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