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

Schnellerer Datentransfer zw. 2 Tabellenblättern

Schnellerer Datentransfer zw. 2 Tabellenblättern
24.04.2018 08:41:41
Jonas
Hallo liebe Community..
ich suche in VBA nach einer schnellen Alternative zum kopieren. In meinem Fall muss ich zu Beginn meines Makros ein Tabellenblatt in sein Ausgangszustand zurücksetzen. Dazu habe ich ein zweites Blatt in dem dieser Ausgangszustand abgebildet ist. Leider ist der zu kopierende Bereich relativ groß, sodass der Kopiervorgang eine knappe halbe Minute dauert. Der aktuelle Kopierbefehl dazu lautet:
wksSheet1.Range("A1:NC253").Copy Destination:=wksSheet2.Range("AJ7")
Hat eventuell einer eine Idee wie dieser ganze Vorgang etwas beschleunigt werden kann?
LG Jonas

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schnellerer Datentransfer zw. 2 Tabellenblättern
24.04.2018 09:25:44
Matthias
Moin!
Könntest du nicht einfach das alte Blatt löschen, deine Backupseite reinkopieren und umbenennen? GEht natürlich nur, wenn da keine Makros im hintergrund auf der Seite sind und es nur die selben Daten sind.
VG
AW: Schnellerer Datentransfer zw. 2 Tabellenblättern
24.04.2018 10:42:23
Jonas
hey, also das mit dem löschen ist vielleicht ein Ansatz, allerdings läuft im Hintergrund ein Makro ab in dem weitere Abfragen aus Access eingefügt werden. Theoretisch müsste man ihm doch aber zu Beginn des Makros sagen können lösche das alte Blatt und erstelle ein neues mit demselben Namen. Dann sollte das makro doch keine Probleme machen, da es sich sowieso um ein Modul handelt.
Ansonsten ist nicht vllt der Befehl ".Value" anstelle ".Copy" eine etwas schnellere Alternative? Leider bin ich in VBA noch nicht so fit und weiß nicht wie ich meinen Code anpassen müsste.
Anzeige
Value-Befehl
24.04.2018 18:09:34
KlausF
Hi Jonas,
der Value-Befehl lautet
wksSheet2.Range("AJ7:OL259").Value = wksSheet1.Range("A1:NC253").Value
Gruß
Klaus
AW: Die üblichen Verdächtigen
24.04.2018 10:48:57
mmat
Hallo,
das ist nicht besonders groß, der Kopiervorgang sollte auf keinen Fall mehr wie 2-3 Sekunden dauern.
Hast du denn die automatische Berechnung von Formeln ausgeschaltet? auch das ausschalten der Bildschirmaktualisierung ist oft hilfreich.
  Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False

AW: Die üblichen Verdächtigen
24.04.2018 11:01:43
Jonas
Die beiden Befehle habe ich drin:
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False
End With
es liegt auch wirklich an der einen Zeile die ich in meinem Ausgangspost angegeben habe. Kommentiere ich diese aus, läuft das Makro in unter einer Sekunde durch
Anzeige
AW: Die üblichen Verdächtigen
24.04.2018 11:09:46
mmat
Hallo Jonas,
tja, dann kann ich mir das Laufzeitverhalten nicht erklären. Es hängt natürlich auch davon ab, wieviel Inhalt die einzelnen Zellen haben. Aber per Ferndiagnose oder Kristallkugen krieg ich das Phänomen nicht gelöst ...
Im übrigen ist der Vorschlag von Matthias gut, das sollte helfen.
AW: Die üblichen Verdächtigen
24.04.2018 11:52:08
Jonas
Im Prinzip ist es ein Schichtmodell für das komplette Jahr. In jeder der zu kopierenden Zellen steht ein Buchstabe als Abkürzung für die Schicht. Also eigentlich nicht viel Inhalt. Hinterlegt ist für den ganzen Bereich eine bedingte Formatierung, und je nach Buchstabe wird die Zelle gefärbt. Ich weiß nicht ob das evtl. das Problem ist.
Anzeige
AW: Die üblichen Verdächtigen
24.04.2018 15:30:39
mmat
Dann lösche in einer Kopie der Arbeitsmappe alle Formatierungen und vergleiche die Laufzeit

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige