Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
808to812
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
808to812
808to812
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Tabellenblatt mit VBA kopieren und in andere Datei

Tabellenblatt mit VBA kopieren und in andere Datei
12.10.2006 19:11:57
reiner
Hallo Leute,
Die Datei „DatenAlt.xls“ enthält für jeden Monat seit Jan. 2000 ein separates Tabellenblatt mit ca. jeweils 3000 Datensätzen. Inzwischen umfasst die Dateigröße mit 81 Tabellenblättern sowie Programmcode für Auswertungen auf einer UF ca. 41 MB. Auf der UF wird anhand von Optionsschaltflächen jeweils ein Jahrgang angewählt; eine ComboBox listet die diesem Jahrgang zugehörigen Tabellenblattnamen auf: (Jan., Feb.,...Nov., Dez.). Durch Markierung eines dieser Einträge wird das entsprechende Tabellenblatt kopiert und in das Tabellenblatt „Auswertung“ zur weiteren Bearbeitung kopiert. Soweit funktioniert alles wunderbar.
Zur Reduzierung der Dateigröße will ich nun alle zu einem Jahrgang gehörenden Tabellenblätter aus „DatenAlt.xls“ ausschneiden und in jeweils eine neue Datei mit dem Namen „2000.xls“ (2001.xls, 2002.xls usw. bis 2005.xls) einfügen. Die Jahrgangs- und Monatsauswahl soll weiterhin wie oben beschrieben erfolgen.
Es sind also 2 Dateien geöffnet: „DatenAlt.xls“ und z.B. „2002.xls“. Die Auswahl und das anschließende Markieren (zum Kopieren) des gewählten Tabellenblattes in „2002.xls“ funktioniert bereits. Mit dem anschließenden Einfügen in das Blatt „Auswertung“ in „DatenAlt.xls“ gibt es aber noch ein Problem.
Mit: Selection.Copy After:=Workbooks(„DatenAlt.xls“).Sheets("Auswertung")
ist es noch nicht möglich die Zieldatei anzusprechen.
Wie müsste der Code abgeändert werden?
mfg
reiner

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

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt mit VBA kopieren und in andere D
12.10.2006 21:21:50
fcs
Hallo reiner,
mir nicht ganz klar, was du genau möchtest.
Nach deiner Beschreibung möchtest du den Datenbereich in einem Monatsblatt in einer Jahresdatei in das Blatt "Auswertung" in der Datei "DatenAlt.xls" kopieren. Dein Codebeispiel, das nicht funktioniert, gilt für das Kopieren ganzer Tabellenblätter.
Ich gehe mal davon aus, dass in der Codezeile vorher der entsprechende zu kopierende Zellbereich mit Select ausgewählt ist. Dann sieht die Codezeile für das Einfügen des Zellbereiches etwa wie folgt aus:

Selection.Copy Destination:=Workbooks("DatenAlt.xls").Sheets("Auswertung").Range("A1")

Dabei ist "A1" die Zelle in der das Einfügen der Kopie des selektierten Zellbereichs beginnt.
Gruss
Franz
Anzeige
AW: Tabellenblatt mit VBA kopieren und in andere D
12.10.2006 23:11:20
reiner
Hallo Franz,
das Kopieren ist mit Deinem Vorschlag möglich und funktioniert auch. Wie lässt es sich aber darstellen dass anschließend das Tabellenblatt „Auswertung“ mit dem neu hineinkopierten Inhalt angezeigt wird?
„Workbooks.Open“ wäre wohl nicht der richtige Aufruf denn damit würde die Datei „DatenAlt.xls“ nochmals aufgerufen was aber nicht sinnvoll ist da diese Datei ja bereits gestartet wurde.
mfg
reiner
AW: Tabellenblatt mit VBA kopieren und in andere D
13.10.2006 00:52:52
fcs
Hallo reiner,

Workbooks("DatenAlt.xls").Activate
Sheets("Auswertung").Select

Gruss
Franz
AW: Tabellenblatt mit VBA kopieren und in andere D
13.10.2006 13:34:52
reiner
Hallo Franz,
das Einfügen der Datensätze in „DatenAlt.xls“ sowie die Anzeige des gewähltes Datenblatts funktionieren nun. Ein Problem ist momentan noch das Schließen ohne Speichern der Datei „2002.xls“ nach erfolgtem Einfügen.
Mit:
Application.DisplayAlerts = False 'Löschabfrage unterdrücken
Workbooks(„2002.xls“).Close 'Datei schließen
dauert das Schließen der Datei ca. 25 sec. – also viel zu lange.
Ohne „Application.DisplayAlerts = False“ lässt sich das Schließen zwar beschleunigen aber dafür muss ich beantworten ob die Datei zuvor gespeichert werden soll; bei Antwort „NEIN“ erfolgt eine weitere Abfrage ob die Inhalte der Zwischenablage pespeichert oder gelöscht werden sollen.
Wie also lässt sich das Schließen ohne jegliche Abfrage durchführen?
mfg
reiner
Anzeige
AW: Tabellenblatt mit VBA kopieren und in andere D
13.10.2006 13:45:54
Stefan
Hallo Reiner,
Probier das Schliessen mal mit
Workbooks("DatenAlt.xls").Close SaveChanges:=False
ohne die DisplayAlerts-Zeile.
Schoene Gruesse
Stefan
AW: Tabellenblatt mit VBA kopieren und in andere D
13.10.2006 14:28:58
reiner
Hallo Stefan,
mit Deinem Vorschlag lässt sich zwar die erste (Speicher-) Abfrage verhindern, die zweite Abfrage ob die Inhalte der Zwischenablage gespeichert oder gelöscht werden sollen, jedoch nicht.
mfg
reiner
AW: Tabellenblatt mit VBA kopieren und in andere D
13.10.2006 14:52:17
Stefan
Hallo Reiner,
Neuer code:
Application.CutCopyMode = False
Workbooks("DatenAlt.xls").Close SaveChanges:=False
Ich hoffe das funktioniert jetzt fuer beides, und auch in der Geschwindigkeit die Du Dir vorstellst.
Schoene Gruesse
Stefan
Anzeige
AW: Tabellenblatt mit VBA kopieren und in andere D
13.10.2006 15:04:30
reiner
Hallo Stefan,
Nach dem Löschen der Zwischenablage lässt sich auch die Datei ohne Nachfrage schließen.
Danke für Deinen Beitrag
mfg
reiner

223 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige