ich beziehe mich auf einen früheren Beitrag von mir: Archiv-IDX 1159429 2010-05-30 12:36:39
mit dem Thema Daten von Quell- in Zieldatei kopieren ohne doppel. Folgender Quellcode wurde
mir von Franz zur Verfügung gestellt (ich hatte unter dieser Archiv-IDX auch Beispieldateien hochgeladen):
Sub myCopy4()
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
Dim x As Long
Dim n As Long
Dim mysearch
Dim mySearchRow As Long
mySelection = Selection
ReDim myCounter(1 To UBound(mySelection, 1), 1 To UBound(mySelection, 2))
For i = LBound(mySelection, 1) To UBound(mySelection, 1)
For x = LBound(mySelection, 2) To UBound(mySelection, 2)
myCounter(i, x) = mySelection(i, x)
Next x
Next i
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, 1) To UBound(mySelection, 1)
For x = LBound(mySelection, 2) To UBound(mySelection, 2)
Set mysearch = .Range("B1:B" & lngLastRow).Find(myCounter(i, 2), lookat:=xlWhole)
If Not mysearch Is Nothing Then
mySearchRow = mysearch.Row
.Cells(mySearchRow, x) = myCounter(i, x)
Else
n = .Cells(.Rows.Count, x).End(xlUp).Row
.Cells(n + 1, x) = myCounter(i, x)
End If
Next x
Next i
End With
objXLWorkbooks(neuWkb).Close savechanges:=True
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
Set objXLApp = Nothing
Set objXLWorkbooks = Nothing
End Sub
Das Programm leistet folgendes: Es kopiert aus verschiedenen dynamisch gepflegten Quelldateien mit gleicher Struktur die markierten Datensätze in eine Zieldatei (sozusagen die Gesamtdatei - auch die gleiche Struktur) und überschreibt in der Zieltabelle Datensätze, falls in Spalte B gleiche Daten stehen. D.h. es gibt keine doppelten Daten in Spalte B. Dabei wird die Zieldatei im Hintergrund automatisch geöffnet und wieder geschlossen.
Mein Problem: Ich möchte in die Zieltabelle eine Spalte einfügen in deren Zellen der Name der jeweiligen Quelldatei, aus der heraus die Zieldatei gerade befüllt wird, eingefügt wird. Aber nur der Name und nicht der ganze Pfad.
Kann mir hiermit jemand weiterhelfen?
Liebe Grüße
Stefan