Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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
Anzeige

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
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige