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

suche Makro: Kopieren v. Zeilen zwischen 2 Dateien

suche Makro: Kopieren v. Zeilen zwischen 2 Dateien
22.03.2006 18:27:51
Till
Hi Leute,
ich versuch nun schon seit Tagen ein vernünftiges Makro für folgende Aktion hinzubekommen.
Ich habe eine Datei mit ca. 300 Einträgen in Spalte F, G, H
Die Datei hat keine Leerzeichen. Bei ca. 300 Einträgen endet die Datei. Es können aber auch evtl. mehr sein.
Ich möchte nun die jeweiligen Einträge in F, G, H in die Spalten F, G, H des anderen Arbeitsblattes der anderen Datei überführen. Hierbei sollen aber nur die Daten in jede 5. Zeile des neuen Arbeitsblattes kopiert werden.
Das Makro sollte darüberhinaus so klug sein, automatisch zu erkennen, dass die Einträge der ersten Datei irgendwann zu Ende sind und danach automatisch stoppen.
Ich hoffe, Ihr könnt mir helfen.
Ich hab wenig Ahnung von Loops oder so...ich hab jetzt eine Lösung in der ich quasi jeden Befehl einzeln aufschreibe, also copy das hier und paste es dort...copy hier paste dort....Ich denke, es geht auch einfacher!
Danke schon mal!
Gruß Till

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: suche Makro: Kopieren v. Zeilen zwischen 2 Dateien
22.03.2006 18:57:42
IngGi
Hallo Till,
das geht z.B. so:

Sub kopieren()
Dim lngRow As Long
Dim wksQuell As Worksheet
Dim wksZiel As Worksheet
Set wksQuell = Workbooks("Mappe1").Worksheets("Tabelle1") 'Datenquelle anpassen
Set wksZiel = Workbooks("Mappe2").Worksheets("Tabelle1") 'Datenziel anpassen
For lngRow = 0 To wksQuell.Range("F65536").End(xlUp).Row - 1 Step 5
wksQuell.Range(Range("F1").Offset(lngRow, 0), Range("F1").Offset(lngRow, 2)).Copy
wksZiel.Range("F65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteAll
Next 'lngRow
End Sub
Gruß Ingolf
AW: suche Makro: Kopieren v. Zeilen zwischen 2 Dat
22.03.2006 23:30:21
Till
Hi Ingolf,
das ging schon mal ganz gut...
Nur hab ich jetzt aus der Ursprungsdatei jede 5. Zeile in die neue Datei kopiert.
Ich möchte es aber gerne anders herum haben.
Ich möchte JEDE Zeile der Ursprungsdatei in die neue Datei kopieren und zwar die erste Zeile der Ursprungsdatei in die erste Zeile der neuen Datei, die zweite Zeile der Ursprungsdatei in die fünfte Zeile der neuen Datei, usw.
Dabei sollten auch keine Zeilen, die dazwischen stehen von dem Kopiervorgang überschrieben werden.
Ich hoffe, das geht auch!
Danke schon mal!
Gruß Till
Anzeige
AW: suche Makro: Kopieren v. Zeilen zwischen 2 Dat
23.03.2006 00:07:02
IngGi
Hallo Till,
erste Zeile, fünfte Zeile? Ich denke, du meinst erste Zeile, sechste Zeile (1+5=6), dann so:

Sub kopieren()
Dim lngRow As Long
Dim wksQuell As Worksheet
Dim wksZiel As Worksheet
Set wksQuell = Workbooks("Mappe1").Worksheets("Tabelle1") 'Datenquelle anpassen
Set wksZiel = Workbooks("Mappe2").Worksheets("Tabelle1") 'Datenziel anpassen
For lngRow = 0 To wksQuell.Range("F65536").End(xlUp).Row - 1
wksQuell.Range(Range("F1").Offset(lngRow, 0), Range("F1").Offset(lngRow, 2)).Copy
wksZiel.Cells((lngRow + 1) * 5 - 4, 6).PasteSpecial Paste:=xlPasteAll
Next 'lngRow
End Sub
Gruß Ingolf
Anzeige
AW: suche Makro: Kopieren v. Zeilen zwischen 2 Dat
23.03.2006 08:38:03
Till
Hi Ingolf,
wow....super... hat gut geklappt danke!!!!
Und was für ein Code fehlt noch, wenn ich erst ab der 2. Zeile in der Ursprungsdatei loslegen will und in die 18. Zeile der Zieldatei kopieren will.
Kleiner Zusatz: Die Zieldatei ist zu diesem Zeitpunkt noch mit "Datei-neu" aus einer Vorlage erstellt und noch nicht im xls-Format gespeichert.
Ich denke mehr brauch ich nicht! Danke schon mal für Deine Hilfe!
Gruß Till
AW: suche Makro: Kopieren v. Zeilen zwischen 2 Dat
23.03.2006 10:06:19
IngGi
Hallo Till,
dann so:

Sub kopieren()
Dim lngRow As Long
Dim wksQuell As Worksheet
Dim wksZiel As Worksheet
Set wksQuell = Workbooks("Mappe1").Worksheets("Tabelle1") 'Datenquelle anpassen
Set wksZiel = Workbooks("Mappe2").Worksheets("Tabelle1") 'Datenziel anpassen
For lngRow = 0 To wksQuell.Range("F65536").End(xlUp).Row - 1
wksQuell.Range(Range("F1").Offset(lngRow + 2, 0), Range("F1").Offset(lngRow, 2)).Copy
wksZiel.Cells((lngRow + 1) * 5 + 14, 6).PasteSpecial Paste:=xlPasteAll
Next 'lngRow
End Sub
Gruß Ingolf
Anzeige
AW: suche Makro: Kopieren v. Zeilen zwischen 2 Dat
23.03.2006 13:15:34
Till
Hi Ingolf,
danke erst mal...
Aber das macht nicht wirklich das, was ich möchte.
Anbei einmal 2 Dateien, die die Quell- und Zieldatei darstellen.
In der Quelldatei starten die Einträge in Zeile 2.
D.h. wichtig sind die Leerzeilen dazwischen, die auf keinen Fall überschrieben werden dürfen!!
Hoffe, Du hast auch dafür eine Lösung!!!
Hier ein Link zu den Daten:
Quelldatei:
Userbild
Zieldatei:

Die Datei https://www.herber.de/bbs/user/32180.jpg wurde aus Datenschutzgründen gelöscht

Anzeige
AW: suche Makro: Kopieren v. Zeilen zwischen 2 Dat
23.03.2006 14:36:42
IngGi
Hallo Till,
das ging doch nicht so einfach, wie gedacht. Ich habe ein paar Dinge übersehen und habe das Ganze nochmal ein bisschen anders gemacht.

Sub kopieren()
Dim lngRow As Long
Dim wksQuell As Worksheet
Dim wksZiel As Worksheet
Set wksQuell = Workbooks("Mappe1").Worksheets("Tabelle1") 'Datenquelle anpassen
Set wksZiel = Workbooks("Mappe2").Worksheets("Tabelle1") 'Datenziel anpassen
For lngRow = 0 To wksQuell.Range("F65536").End(xlUp).Row - 3
wksQuell.Range(Range("F3").Offset(lngRow, 0), Range("F3").Offset(lngRow, 2)).Copy
wksZiel.Cells((lngRow + 1) * 5 + 13, 6).PasteSpecial Paste:=xlPasteAll
Next 'lngRow
End Sub
Gruß Ingolf
Anzeige
AW: suche Makro: Kopieren v. Zeilen zwischen 2 Dat
23.03.2006 16:00:22
Till
Hi Ingolf,
fast perfekt!!!
Wo erweitere ich die "Geschichte", dass er vier Spalten mitnimmt und nicht nur 3????
Danke!
Gruß aus Trier!
Till
AW: suche Makro: Kopieren v. Zeilen zwischen 2 Dat
23.03.2006 21:36:52
IngGi
Hallo Till,
hierfür habe ich in dieser Zeile die letzte Zahl von 2 auf 3 gesetzt:
wksQuell.Range(Range("F3").Offset(lngRow, 0), Range("F3").Offset(lngRow, 3)).Copy
Gruss Ingolf
AW: suche Makro: Kopieren v. Zeilen zwischen 2 Dat
27.03.2006 09:44:42
Till
Hi Ingolf,
anfangs ging das noch ganz gut...
Jetzt bekomme ich aber das Makro leider nicht mehr zum Laufen!
Irgendwie schleicht sich immer die folgende Fehlermeldung ein!
Laufzeitfehler '1004':
Die Methode 'Range' für das Object'_Worksheet' ist fehlgeschlagen.
Ist da etwas nicht richtig definiert???
Gruß Till
Hier noch mal mein angepasster Code:

Sub x_copy()
Dim lngRow As Long
Dim wksQuell As Worksheet
Dim wksZiel As Worksheet
Set wksQuell = Workbooks("Kalkulation.xls").Worksheets("LV") 'Datenquelle anpassen
Set wksZiel = Workbooks("Kalkulation_Deutsch1.xls").Worksheets("Angebot") 'Datenziel anpassen
For lngRow = 0 To wksQuell.Range("F65536").End(xlUp).Row - 3
wksQuell.Range(Range("F3").Offset(lngRow, 0), Range("F3").Offset(lngRow, 3)).Copy
wksZiel.Cells((lngRow + 1) * 5 + 13, 6).PasteSpecial Paste:=xlPasteAll
Next 'lngRow
MsgBox "Job erledigt!"
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige