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

Kopieren von Werten

Kopieren von Werten
07.05.2007 15:44:00
Werten
Hallo zusammen,
ich habe folgendes Automatisierungsproblem:
Ich habe ein Excelfile mit ca. 50 Tabellenblättern, die ich wöchentlich in ein anderes Excelfile kopieren möchte.
Die Ursprungsfiles fangen immer an der selben Stelle an, haben immer die Selbe Anzahl an Spalten, aber variierende Zeilenanzahlen. Meine Frage:
Wie sieht ein Makro aus, welches zuerst immer die Zeilenanzahl ausliest, die Gesamten Spalten und Zeilen markiert und dann in ein korrespondierendes Excelblatt kopiert?
Jetzt noch die Advanced Aufgabe ;-) :
Im Zielfile befinden sich in den Tabellenblättern Formeln, die je nach Länge der Ursprungstabellen angepasst werden müssen. (...ich würde es gerne vermeiden einfach die Formel bis zur 65000 Zeile runter zu kopieren, da dies glaube ich immense Auswirkungen auf die Größe der Datei hat...oder irre ich mich da?)
...das ist aber wirklich nur ein Gimmick...
Hoffe ich habe mich deutlich ausgedrückt und schon einmal Danke für eine Antwort!
Grüße
Christian

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kopieren von Werten
09.05.2007 03:44:00
Werten
Hallo Christian,
folgendes Grundgerüst sollte weiterhelfen. ggf. müßte noch eine Prüfung eingebaut werden, ob der Name der Tabelle in der Quelldatei in der Zieldatei jeweils vorhanden ist und was passieren soll, falls das nicht der Fall ist.
Gruß
Farnz

Sub Werteübernehmen()
'Übernimmt Werte aus den Tabellen einer Datei in die aktive Datei
Dim wbQuelle As Workbook, wbZiel As Workbook
Dim wksQuelle As Worksheet, wksZiel As Worksheet
Dim ZeileL As Long, ZielZelle As Range, Quellbereich As Range
Set wbZiel = ActiveWorkbook 'Datei in die die daten übertragen werdne sollen
Application.ScreenUpdating = False
Set wbQuelle = Workbooks.Open(FileName:="C:\Test\Test.xls", ReadOnly:=True)
For Each wksQuelle In wbQuelle.Worksheets
'Annahme: Namen der Tabellen sind in den Dateien identisch
Set wksZiel = wbZiel.Worksheets(wksQuelle.Name)
With wksZiel
Set ZielZelle = .Cells(3, 4) 'Linke obere Zelle ab der Daten eingefügt werden sollen
'Altdaten in Zieltabelle löschen? 1. Zeile mit Formeln nicht löschen!
.Range(.Cells(ZielZelle.Row + 1, 1), .Cells(.Rows.Count, 25)).ClearContents
'Letzte Zeile in Quelltabelle ermitteln.
'Dazu Spalte wählen, die in allen Zeilen Daten hat!
ZeileL = wksQuelle.Cells(wksQuelle.Rows.Count, 1).End(xlUp).Row
'Werte von Quelle nach Ziel übertragen
Set Quellbereich = wksQuelle.Range(wksQuelle.Cells(1, 1), wksQuelle.Cells(ZeileL, 22))
ZielZelle.Range(.Cells(1, 1), .Cells(Quellbereich.Rows.Count, _
Quellbereich.Columns.Count)).Value = Quellbereich.Value
'Formeln im Formel-Bereich nach unten kopieren
.Range(.Cells(3, 1), .Cells(3 + Quellbereich.Rows.Count - 1, 3)).FillDown
End With
Next
wbQuelle.Close Savechanges:=False
Application.ScreenUpdating = True
End Sub


Anzeige
AW: Kopieren von Werten
09.05.2007 08:32:00
Werten
Hallo Franz,
danke für Deine sehr ausführliche Hilfe!!
Klappt mit ein paar kleinen Modifikationen ausgezeichnet!
Gruß
Christian

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige