meine VBA-Kenntnisse sind äusserst bescheiden und mit hohem Recherche-Aufwand verbunden. Nichtsdestotrotz habe ich mir jetzt ein Makro zusammengestellt, das den geforderten Zweck erfüllt:
- Öffne Ausgangsdatendatei
- Finde bestimmte Werte in definierter Spalte ("2015")
- Kopiere komplette Zeile mit gefundenen Werten in Zieldatei
===============================================================
Sub Reporting()
Dim rng As Range
Dim loDeinWert As Long
Dim sFirstAdress As String
Workbooks.Open Filename:=ThisWorkbook.Path & "\FILE1.xlsx"
loDeinWert = 2015
Set rng = Workbooks("FILE1.xlsx").Worksheets("Sheet").Range("C:C").Find(loDeinWert)
If rng Is Nothing Then
MsgBox "Wert " & loDeinWert & " NONE"
Else
sfirstaddress = rng.Address
Do
rng.EntireRow.Copy
Workbooks("Mappe1.xlsm").Worksheets("DATA").Cells(Rows.Count, "A").End(xlUp)
.Offset(1, 0).PasteSpecial Paste:=xlPasteAll
Set rng = Workbooks("FILE1.xlsx").Worksheets("Sheet").Range("C:C").FindNext(rng)
Loop While Not rng Is Nothing And rng.Address sfirstaddress
End If
End Sub
===================================================================
Soweit, so gut (funktioniert), aber: die obige Abfrage bzw. kopierten Zeilen kann pro Datei sehr umfangreich sein (z.B. 3000 Zeilen pro Ausgangsdatei).
Wöchentlich kommt eine weitere Ausgangsdatei (File1, File2, File3 etc) hinzu, die mit diesem Makro überprüft- und in Zieldatei kopiert wird.
Kann ich irgendwie verhindern, dass die bereits bearbeitete Ausgangsdatei nochmals abgefragt/kopiert wird ohne dass ich jede Woche etwas am Code ändern muss?
Ursprünglich hatte ich den Gedanken, die vorangegangenen Daten zu überschreiben (Select.ClearContent). Nach einer gewissen Zeit kommen aber immer mehr Dateien/Daten hinzu, so dass die Ausführung des Codes eine ziemliche Zeit in Anspruch nehmen wird. Das möchte ich umgehen, indem wöchentlich nur die "neuen" Daten hinzugefügt werden.
Ich hoffe, es kann mir jemand helfen.
Vielen Dank!