Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1784to1788
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

Daten Kopieren beschleunigen

Daten Kopieren beschleunigen
05.10.2020 10:38:22
Georg
Liebe Mitglieder,
da ich nicht der OberVBA Guru bin, das Makro funktioniert (Ist Teil von Mehreren Operationen, aber mir geht es hier nur um das Kopieren):
Kann man das beschleunigen, indem man des Code "besser" macht? Momentan teste ich es noch mit wenigen Daten (ca 100 Zeilen), es braucht 2-3 Sekunden (was ok ist), aber es werden deutlich mehr Daten und meine Befürchtung ist, dass es dann doch sehr langsam wird.
Wenn ihr euch fragt, warum ich dies oder jenes so gemacht habe, ich weiß es schlichtweg nicht besser, lerne aber gerne dazu. Vielen Dank für die Tipps. Georg
Sub Datenkop()
Dim wshMonat As Worksheet
dim i as long
dim z as long
'ThisWorkbook.Worksheets(2).Activate
Set wshMonat = Sheets(2)
With ThisWorkbook.Worksheets("Jahresdaten")
'Letzte Zeile in Jahresdaten
lRowJahresdaten = .Cells(Rows.Count, 1).End(xlUp).Row + 1
For i = 2 To lastRow
For z = 1 To 12
.Cells(lRowJahresdaten, z).Value = wshMonat.Cells(i, z).Value
Next z
lRowJahresdaten = lRowJahresdaten + 1
Next i
End With
'format spalte L in %
With ThisWorkbook.Worksheets("Jahresdaten")
For i = 2 To lRowJahresdaten
.Cells(i, 9).NumberFormat = "0.00%"
Next i
End With
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten Kopieren beschleunigen
05.10.2020 10:56:52
ralf_b
einen zusammenhängenden Bereich kannst du auch mit einem Mal kopieren.
AW: Daten Kopieren beschleunigen
05.10.2020 10:56:52
ralf_b
einen zusammenhängenden Bereich kannst du auch mit einem Mal kopieren.
AW: Daten Kopieren beschleunigen
05.10.2020 11:00:20
Daniel
Hi
bei solchen kopier-Aktionen sollte man darauf achten, dass man immer möglichst viele Zellen gleichzeitig in einem Block kopiert.
Das reduziert für Excel den internen "Verwaltungsaufwand" (beim Bäcker bezahlst du ja auch nicht jedes Brötchen einzeln, sondern alle zusammen und bekommst dann nur eine Rechnung)
beispielsweise lässt sich diese Schleife in einem Schritt ausführen:

For i = 2 To lastRow
For z = 1 To 12
.Cells(lRowJahresdaten, z).Value = wshMonat.Cells(i, z).Value
Next z
lRowJahresdaten = lRowJahresdaten + 1
Next i

.Cells(lRowJahresdaten, 1).Resize(lastRow - 2 + 1, 12).value = wshMonat.Cells(2, 1).Resize(lastRow - 2 + 1, 12).Value
gleiches Spiel auch dann beim nächsten Schritt mit dem Zahlenformat:
.Cells(2, 9).Resize(lRowJahresdaten - 2 + 1, 1) = "0.00%"
das ist eigentlich die wichtigste Regel für das schnelle Arbeiten mit Exceltabellen.
keine Einzelbearbeitung von Zellen, sondern immer möglichst große lückenlose Zellblöcke bilden, die dann gemeinsam bearbeitet werden können (und im Sortieren ist Excel sehr schnell)
Gruß Daniel
Anzeige
AW: Daten ..Hallo Daniel vielen Dank
05.10.2020 12:09:48
Georg
..Gruß G

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige