habe wieder mal ein Problem bei dem ich überhaupt nicht weiterkomme. Zuerst mal der bestehende, fehlerhafte Code:
Sub einzelne_kundendateien_zusammenfassen()
Dim Qs As FileSearch
Dim Zs As FileSearch
Dim QuellDatei As Long
Dim ZielDatei As Long
Dim Wbq As Workbook
Dim Wbz As Workbook
Dim wksq As Worksheet
Dim wksz As Worksheet
Dim zeile As Long, letzteZeile As Long
Dim Sheet As Integer
Dim name As String, anfang As String
Const zielPfad As String = "E:\1\test\Karteikartenneu"
Const quelPfad As String = "E:\1\test\Karteikarten"
'Application.ScreenUpdating = False
Set Qs = Application.FileSearch
Set Zs = Application.FileSearch
With Qs
.NewSearch
.LookIn = quelPfad
.SearchSubFolders = False
.FileType = msoFileTypeExcelWorkbooks
.Execute
For QuellDatei = 1 To .FoundFiles.Count
Set Wbq = Workbooks.Open(Filename:=.FoundFiles(QuellDatei)) 'FEHLER, da er _
anscheinend die Suche nicht verschachteln kann
Set wksq = Wbq.Sheets(1)
'Set wksq = Wbq.Worksheets(1)
name = wksq.name
anfang = Left(name, 1)
'Sheet(1) vollständig kopieren
With Zs
.NewSearch
.LookIn = zielPfad
.SearchSubFolders = False
.FileType = msoFileTypeExcelWorkbooks
.Execute
For ZielDatei = 1 To .FoundFiles.Count
'Hier kommt noch eine IF-Abfrage hin, ob der Anfangsbuchstaben der Datei _
gleich der Variable anfang ist
Set Wbz = Workbooks.Open(Filename:=.FoundFiles(ZielDatei))
'Sheet(1) am Ende einfügen
Wbz.Close False
'Wbz.Close True
Next ZielDatei
End With
Wbq.Close False
'Wbq.Close True
Next QuellDatei
End With
Application.ScreenUpdating = True
End Sub
Kleine Vorgeschichte:
In einem Verzeichnis "Karteikarten" sind für jeden Kunden Dateien mit jeweils einem Sheet enthalten.
In dem Verzeichnis "Karteikartenneu" sind die Dateien A.xls, B.xls, C.xls, ... , Z.xls enthalten.
Also der Code soll folgendes machen:
Die Dateien werden jeweils einzeln geöffnet und das Sheet kopiert. Nun wird der Anfangsbuchstabe des Sheetnamens ermittelt und damit die Datei im Verzeichnis "Karteikartenneu" gesucht, die mit dem gleichen buchstaben anfängt. Diese Datei wird dann geöffnet und das Sheet hineinkopiert.
Da auf diese Weise rund 3000 Dateien zusammengefasst werden sollen, möchte ich das automatisiert ablaufen lassen.
Beispiel:
In der Datei "Arend Hans.xls" existiert das Sheet "Arend Hans". Dieses Sheet soll in die Datei "A.xls" hinüberkopiert werden.
Problem: Für den ersten Kunden funktioniert mein obiger Code. Allerdings darf die Dateisuche wohl nicht ineinanderverschachtelt ablaufen, denn für den zweiten Druchlauf bringt er mir gleich eine Fehlermeldung.
Wär super, wenn mir jemand helfen könnte.