Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1868to1872
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

Beschleunigung VBA Code für Copy Paste

Beschleunigung VBA Code für Copy Paste
17.02.2022 12:39:07
Ingo
Hallo zusammen
Ich habe mir zwecks Kopieren von per Autofilter selektierten Werten aus 3 nicht zusammenhängenden Spalten eines Quellen-Tabellenblattes in eine bestimmte Zelle eines Ziel-Tabellenblattes innerhalb der selben Datei und zurücksetzen des vorgenannten Autofilters im Quellen-Tabellenblatt den folgenden VBA Code erstellt.
Ausgeführt wird der Code durch individuellen Klick auf einen entsprechend im Ziel-Tabellenblatt befindlichen Button.
Das funktioniert alles soweit einwandfrei.
Nun wäre ich, sofern dies noch möglich ist, daran interessiert, den Code in seiner Laufzeit noch zu beschleunigen.
Kann mir da jemand von euch weiterhelfen?
Hier mein Code:

Sub fehlende_Lieferanten()
Application.ScreenUpdating = False
Range("AA21:AC120").Select
Selection.ClearContents
Sheets("IST_Daten_Summen").Select
ActiveSheet.Range("$I2:$O3000").AutoFilter Field:=6, Criteria1:=""
Range("$I$3:$I$3001,$N$3:$N$3001,$O$3:$O$3001").Select
Selection.Copy
Sheets("PlanungDritte").Select
Range("$AA$21").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("IST_Daten_Summen").Select
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
Sheets("PlanungDritte").Select
Application.ScreenUpdating = True
End Sub
Gruss Ingo

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Beschleunigung VBA Code für Copy Paste
17.02.2022 12:49:10
UweD
Hallo
auf Select kann zu 99% verzichtet werden
so?

Sub fehlende_Lieferanten()
Application.ScreenUpdating = False
Sheets("PlanungDritte").Range("AA21:AC120").ClearContents
With Sheets("IST_Daten_Summen")
.Range("$I2:$O3000").AutoFilter Field:=6, Criteria1:=""
.Range("$I$3:$I$3001,$N$3:$N$3001,$O$3:$O$3001").Copy
End With
Sheets("PlanungDritte").Range("$AA$21").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
With Sheets("IST_Daten_Summen")
If .FilterMode Then .ShowAllData
End With
Application.ScreenUpdating = True
End Sub
LG UweD
Anzeige
Zusätzlich...
17.02.2022 12:53:31
{Boris}
Hi,
...könnte es hilfreich sein, die Berechnung temporär auf manuell zu schalten.
VG, Boris
AW: Zusätzlich...
17.02.2022 13:56:51
Ingo
Hallo Boris
Vielen Dank für den Tipp. Habe meine Code entsprechend ergänzt, und siehe da: die Laufzeit hat sich damit um gut 2/3 reduziert :-)
Gruss Ingo
AW: Beschleunigung VBA Code für Copy Paste
17.02.2022 13:54:08
Ingo
Hallo Uwe
Vielen Dank für deinen Tipp. Habe den Code entsprechend umgebaut. Hat aber leider keine merkliche Verbesserung der Laufzeit gebracht, dafür jedoch einen sehr wertvollen Ansatz für eine wesentlich bessere Übersichtlichkeit des Codes, der mir ebenfalls sehr weitergeholfen hat.
Was aber eine merkliche Verkürzung (um ca. 2/3) der Laufzeit gebracht hat, ist der Tipp von Boris mit der per VBA vorgängigen Deaktivierung der automatischen Berechnung.
Gruss Ingo
Anzeige
AW: Beschleunigung VBA Code für Copy Paste
17.02.2022 13:02:41
Daniel
Hi
Ist die Liste sortierbar? Wenn ja, dann sortieren vor dem Kopieren die Liste nach der Filterspalte, so dass beim Filtern alle Zeilen, die kopiert werden sollen einen lückenlosen Block bilden.
Beim kopieren solcher gefilterten Tabellen ist für die Bearbeitungszeit nicht die absolute Anzahl an Zeilen ausschlaggebend, sondern die Anzahl der lückenlosen Blöcke. Je weniger Lücken, um so schneller gehts.
Und im Sortieren ist Excel schnell, das sollte man ausnutzen.
Gruß Daniel
AW: Beschleunigung VBA Code für Copy Paste
17.02.2022 14:07:09
Ingo
Hallo Daniel
Vielen Dank für den Hinweis. Konnte die Laufzeit durch den Tipp von Boris bereits wesentlich verkürzen, was im Moment mal soweit gut ist.
Da mein Quellen-Tabellenblatt aber auch eine dynamische erstellte Tabelle enthält, brauche ich ein bisschen mehr Zeit für Umsetzung/Ausprobieren der
von dir vorgeschlagenen Lösung mit dem vorgängigen Sortieren.
Gruss Ingo
Anzeige

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige