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

Makro: bestimmte Zeilen in andere Datei

Makro: bestimmte Zeilen in andere Datei
11.11.2021 13:51:05
Marco
Hallo zusammen,
leider habe ich kaum Kenntnisse in VBA, möchte aber trotzdem meinen Arbeitsalltag mit einem Makro erleichtern. Ich hoffe jemand von euch kann mir hier weiterhelfen.
Folgende Arbeitsschritte möchte ich zusammenfassen:
Ich habe eine Datenquelle und möchte daraus Zeilen in verschiedene Zieldateien einfügen. In Spalte D ist der jeweilige Bezug zu den Zieldateien enthalten. Wenn also in Spalte D "AAA" eingetragen ist, soll diese Zeile in die Datei Beispiel Zieldatei AAA kopiert werden. Selbes dann für BBB und DDD.
Die jeweiligen Zieldateien sind zum Start der Anwendung noch nicht geöffnet. Eingefügt werden soll die kopierte Zeile immer in Zeile 2 und das Format der darunterliegenden Zeile muss übernommen werden.
Problematisch ist zusätzlich, dass ich im echten Anwendungsfall ca. 20 Zieldateien habe und somit auch 20 Bezüge auf die in Spalte D geprüft werden muss. Ich müsste also noch verstehen, wie ich die VBA für weitere Bezüge erweitere.
Wäre über jede Hilfe dankbar.
Grüße Marco
Hier noch die Beispiel Dateien
Datenquelle
https://www.herber.de/bbs/user/149082.xls
Zieldatei AAA
https://www.herber.de/bbs/user/149083.xls
Zieldatei BBB
https://www.herber.de/bbs/user/149084.xls
Zieldatei DDD
https://www.herber.de/bbs/user/149085.xls

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro: bestimmte Zeilen in andere Datei
11.11.2021 15:50:31
Edi
Hallo Marco
Ich hätte da eine etwas holprige Lösung.
bestimmt gibt es da elegantere Ansätze.
es gibt 2 Möglichkeiten
1. Für jede Zeile Datei öffnen, Zeile einfügen, Datei schließen
Das dauert natürlich.
2. Erst alle benötigten Dateien öffnen, dann Zeilen kopieren. Das kann aber je nach Datigröße und Menge das System evtl überfordern.
Bei meinem Script habe ich jetzt mal 2 gewählt.
Wie gesagt, ist nur so ein Ansatz, Fehlerbehandlung habe ich jetzt mal keine eingebaut
Voraussetzungen:
1. Alle Zieldateien sind bereits vorhanden
2. Alle Dateien (Quelle und Ziel) befinden sich im gleichen Ordner
3. Das Makro befindet sich in der Quelldatei
4. Du hast xls Dateien hochgeladen. Das habe ich mal so übernommen. Wenn es dann doch xlsx oder xlsm sein soll, muss das Script angepasste werden
Die Zieldateien werden anschließend nicht gespeichert oder geschlossen.
Soll das auch automatisch geschehen, muss das Makro entsprechend erweitert werden.

Sub Makro()
Dim i As Integer
Dim x As Integer
Dim z As Integer
Dim strName As String
If Cells(1, 4).Value = "" Then Exit Sub
'öffnet alle Zieldateien, nach Prüfung ob nicht schon geöffnet
For z = 1 To ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row
strName = Cells(z, 4).Value & ".xls" 'ggf. anpassen
x = 0
For i = 1 To Workbooks.Count
If Workbooks(i).Name = strName Then
x = 1
Exit For
End If
Next i
If x = 0 Then Workbooks.Open Filename:=strName
ThisWorkbook.Activate
Next z
'kopiert Daten
For z = 1 To ActiveSheet.Cells(Rows.Count, 4).End(xlUp).Row
strName = Cells(z, 4).Value & ".xls" 'ggf. anpassen
Application.CutCopyMode = False
Workbooks(strName).Worksheets(1).Rows("2:2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
Range(Cells(z, 1), Cells(z, 10)).Copy
Workbooks(strName).Worksheets(1).Cells(2, 1).PasteSpecial
Next z
End Sub
schau mal, ob das was für Dich ist
Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige