Herbers Excel-Forum - das Archiv

Kopieren über 2 Dateien?

Bild

Betrifft: Kopieren über 2 Dateien?
von: Bereich über 2 Dateien Kopieren?

Geschrieben am: 04.08.2008 10:10:57

Morgen,
ich möchte gerne Über 2 Dateien mit Hilfe von VBA einen Bereich kopieren und einfügen.
Das ist mein Code, funktioniert toll bei einer aktiven Datei, jedoch nicht bei 2 Dateien.
Es kommt immer der Fehler:
Laufzeitfehler '9'
Index auserhalb des gültigen Bereichs.
Allerdings ist doch der Bereich der gleiche. A1=A1, wo liegt hier der Fehler?

Sub kopieren()
Windows("Peter.xls").Activate
Workbooks("Peter.xls").Worksheets("Tabelle1").Range("A1").Copy
Windows("Lustig.xls").Activate
Workbooks("Lustig.xls").Worksheets("Tabelle2").Range("A1").PasteSpecial Paste:= _
xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End Sub


mfg eimer

Bild

Betrifft: AW: Kopieren über 2 Dateien?
von: ChrisL
Geschrieben am: 04.08.2008 10:39:26
Hallo
Probier mal...
Workbooks("Lustig.xls").Worksheets("Tabelle2").Range("A1") = Workbooks("Peter.xls").Worksheets("Tabelle1").Range("A1").Value
Achte auf mögliche Schreibfehler in den Mappen-/Tabellenbezeichnungen.
Gruss
Chris

Bild

Betrifft: AW: Kopieren über 2 Dateien?
von: eimer

Geschrieben am: 04.08.2008 11:48:07
Hi,
das funktioniert, sollange ich keinen Variablen Bereich angebe.

Workbooks("Lustig.xls").Worksheets("Tabelle2").Range("A1")


.Range(cells(1,1)) sollte doch den gleichen Effekt haben, hat er aber nicht.
Ich brauch das ganze nämlich variabel, also mit einer Range(cells(1,1)),cells(1,70)) als Beispiel. Dabei kommt immer Debugg Fehler 1004.
mfg eimer

Bild

Betrifft: AW: Kopieren über 2 Dateien?
von: ChrisL

Geschrieben am: 04.08.2008 12:07:22
Hallo
Das geht schon auch variabel
Workbooks("Lustig.xls").Worksheets("Tabelle2").Range(Workbooks("Lustig.xls").Worksheets("Tabelle2").Cells(1,1),Workbooks("Lustig.xls").Worksheets("Tabelle2").Cells(1,70)) = Workbooks("Peter.xls").Worksheets("Tabelle1").Range(Workbooks("Peter.xls").Worksheets("Tabelle1").Cells(1,1),Workbooks("Peter.xls").Worksheets("Tabelle1").Cells(1,70)).Value
Schöner:
Dim WS1 As Worksheet, WS2 As Worksheet
Set WS1 = Workbooks("Lustig.xls").Worksheets("Tabelle2")
Set WS2 = Workbooks("Peter.xls").Worksheets("Tabelle1")
WS1.Range(WS1.Cells(1, 1), WS1.Cells(1, 70)) = WS2.Range(WS2.Cells(1, 1), WS2.Cells(1, 70)).Value
Gruss
Chris

Bild

Betrifft: AW: Kopieren über 2 Dateien?
von: eimer
Geschrieben am: 04.08.2008 12:46:36
Perfekt, genau das hab ich gesucht.
Vielen Dank.
mfg eimer

Bild

Betrifft: AW: Kopieren über 2 Dateien?
von: eimer
Geschrieben am: 04.08.2008 13:24:09
Kleine Frage noch nebenher. Wie kann ich jetzt die Formatierung übernehmen?
Das wär noch wichtig für mich.
mfg eimer

Bild

Betrifft: AW: Kopieren über 2 Dateien?
von: ChrisL
Geschrieben am: 04.08.2008 13:35:27
Probier mal...
WS1.Range(WS1.Cells(1, 1), WS1.Cells(1, 70)).Copy WS2.Range(WS2.Cells(1, 1), WS2.Cells(1, 70))
Gruss
Chris

Bild

Betrifft: korrektur
von: ChrisL

Geschrieben am: 04.08.2008 13:36:31
muss man natürlich drehen...
WS2.Range(WS2.Cells(1, 1), WS2.Cells(1, 70)).Copy WS1.Range(WS1.Cells(1, 1), WS1.Cells(1, 70))

Bild

Betrifft: AW: Kopieren über 2 Dateien?
von: eimer

Geschrieben am: 04.08.2008 11:52:14
Hi,
das funktioniert, sollange ich keinen Variablen Bereich angebe.

Workbooks("Lustig.xls").Worksheets("Tabelle2").Range("A1")


.Range(cells(1,1)) sollte doch den gleichen Effekt haben, hat er aber nicht.
Ich brauch das ganze nämlich variabel, also mit einer Range(cells(1,1)),cells(1,70)) als Beispiel. Dabei kommt immer Debugg Fehler 1004.
mfg eimer

 Bild
Excel-Beispiele zum Thema "Kopieren über 2 Dateien?"
Blätter in andere Arbeitsmappen kopieren Module von Mappe zu Mappe kopieren
Arbeitsblatt 40 mal kopieren Schriftgröße beim Kopieren verdoppeln
Beim Kopieren auch die Zeilenhöhe und Spaltenbreite übernehmen Tabellencode nach Kopieren des Blattes löschen
Arbeitsmappe blitzschnell kopieren VBE-Namen der Blattmodule beim Kopieren festlegen
Blattinhalt von einer zur anderen Arbeitsmappe kopieren Formel bis zur letzten Zeile der Nebenspalte kopieren