ein freundlicher Mitarbeiter hat mir hier vor einiger Zeit einen Quellcode zur Verfügung gestellt, der folgendes bewirkt:
ich habe mehrere Arbeitsmappen (Quelldateien), die ständig befüllt werden. Die jeweils neuen Daten werden durch markieren und dann klicken auf einen Button in eine andere Arbeitsmappe (Zieldatei), die sich im Hintergrund öffnet und nach dem hineinkopieren wieder schließt, hineinkopiert (angehängt). Die Dateien haben allesamt die gleiche Struktur. Der Quellcode, der auch funktioniert, ist folgender:
Sub myCopy3()
Dim objXLApp As Excel.Application
Dim objXLABC As Excel.Workbook
Dim objXLWorkbooks As Excel.Workbooks
Dim neuWkb
Dim lngLastRow As Long
Dim mySelection()
Dim myCounter()
Dim i As Long
mySelection = Selection
ReDim myCounter(1 To UBound(mySelection))
For i = LBound(mySelection()) To UBound(mySelection())
myCounter(i) = mySelection(i, 1)
Next
Set objXLApp = New Excel.Application
Set objXLWorkbooks = objXLApp.Workbooks
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
Set objXLABC = objXLWorkbooks.Open("C:\Stefan\Mappe2.xls")
neuWkb = objXLABC.Name
With objXLWorkbooks(neuWkb).Sheets(1)
lngLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
For i = LBound(mySelection()) To UBound(mySelection())
.Cells(lngLastRow + i, 1).Offset(1, 0) = myCounter(i)
Next
End With
objXLWorkbooks(neuWkb).Close savechanges:=True
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
Set objXLApp = Nothing
Set objXLWorkbooks = Nothing
End Sub
Jetzt sollen die Quelldateien um eine Funktionalität erweitert werden:
Der Eintrag in Spalte B ist eindeutig und darf nicht doppelt vorkommen. Es soll also zu der bisherigen Funktionalität noch überprüft werden, ob die vom Anwender markierten und zu kopierenden Daten in der Spalte B schon eimal vorhanden sind. Sollte dies der Fall sein, dann sollen diese Daten durch die neu einzufügenden ersetzt werden andernfalls wie gehabt angehängt werden. Ich hoffe ich habe mich deutlich ausgedrückt. Ist dies möglich? Hintergrund ist, schon vorhandene Datensätze können sich in den Quelldateien jederzeit verändern, außer eben in Spalte B. Diese Veränderungen sollen immer auf dem neuesten Stand sein ohne , daß in Spalte B doppelte einträge vorkommen.
Mit freundlichen Grüßen
Stefan