Hallo Zusammen,
ich versuch mal mein Glück hier bei Euch und hoffe ihr könnt mir helfen.
Aufgabe ist, Zeilen aus einer Datendatei in eine andere Datei zu kopieren.
Folgender Sachverhalt:
Ich habe in der Datei1 ein Suchkriterium (Name)
Diesen suche ich in Datei 2 (Mehrfachtreffer möglich) und kopiere jeweils die gefundene Zeile aus Datei2 nach Datei1.
Die Herausforderung (zumindest für mich) ist dabei:
Es gibt in Datei1 n-Sheets für die sich die o.g. Suche wiederholen muss.
Mein Ansatz ist folgender:
Grundsätzlich funktioniert die Suche, ABER die gefundenen Zeilen werden immer auf das erste Sheet der Zieldatei eingefügt. Wegen Destination:=Tabelle1.Rows(n)
Wie krieg ich es hin, dass immer in das aktive Sheet der For-Each-Schleife eingefügt wird aus der ja auch das Suchkriterium stammt.
Ich hoffe jemand hat mein Problem verstanden und kann mir weiterhelfen.
Danke jedenfalls schon mal!!
ich versuch mal mein Glück hier bei Euch und hoffe ihr könnt mir helfen.
Aufgabe ist, Zeilen aus einer Datendatei in eine andere Datei zu kopieren.
Folgender Sachverhalt:
Ich habe in der Datei1 ein Suchkriterium (Name)
Diesen suche ich in Datei 2 (Mehrfachtreffer möglich) und kopiere jeweils die gefundene Zeile aus Datei2 nach Datei1.
Die Herausforderung (zumindest für mich) ist dabei:
Es gibt in Datei1 n-Sheets für die sich die o.g. Suche wiederholen muss.
Mein Ansatz ist folgender:
Code:
Sub ZeilenKopierenMitBedingung()
Dim wbDaten As Workbook
Dim wsDaten As Worksheet
Dim wsZiel As Worksheet
Dim Zeile As Long
Dim ZeileMax As Long
Dim Mitarbeitername As String
'Ermitteln aller Worksheets in der Zieldatei'
For Each wsZiel In ActiveWorkbook.Worksheets
wsZiel.Select
' Ermitteln des Suchkriteriums'
Mitarbeitername = wsZiel.Cells(1, 1)
'Öffnen der Dateidatei'
Set wbDaten = Workbooks.Open("{Dateipfad}\Daten.xlsx", ReadOnly:=True)
wbDaten.Application.ActiveWindow.Visible = False
Set wsDaten = wbDaten.Worksheets("Tabelle1")
'Ermitteln der Maximalen Zeilen in der Datendatei'
ZeileMax = wsDaten.UsedRange.Rows.Count
'einfacher Offset für das Einfügen der Zeile'
n = 10
'Suchen des Mitarbeiternamens in der Datendatei (Spalte 3) und kopieren der gesamten Zeile'
For Zeile = 1 To ZeileMax
If wsDaten.Cells(Zeile, 3).Value = Mitarbeitername Then
'Die Destination ist (glaub ich) das Problem...'
wsDaten.Rows(Zeile).Copy Destination:=Tabelle1.Rows(n)
n = n + 1
End If
Next Zeile
Next
wbDaten.Close (False)
End Sub
Grundsätzlich funktioniert die Suche, ABER die gefundenen Zeilen werden immer auf das erste Sheet der Zieldatei eingefügt. Wegen Destination:=Tabelle1.Rows(n)
Wie krieg ich es hin, dass immer in das aktive Sheet der For-Each-Schleife eingefügt wird aus der ja auch das Suchkriterium stammt.
Ich hoffe jemand hat mein Problem verstanden und kann mir weiterhelfen.
Danke jedenfalls schon mal!!