ich habe folgende Ausgangslage:
Ich habe ein Workbook A in dem steht auf der ersten Tabelle in Zelle "B4" ein eine 10-Stellige Nummer.
Daneben habe ich in einem Ordner c:\test eine bis 10 Exceldateien liegen mit sehr vielen sheets deren SheetName jeweils eine 10-Stellige Nummer ist.
Nun möchte ich alle Dateien im Ordner Test durchsuchen und den Sheetnamen mit der 10-Stelligen Nummer vergleichen ( mehrere sheets können die Nummer haben) und in mein Workbook A vor Tabelle 8 Kopieren und Einfügen.
Mein Ansatz bis jetzt:
Option Explicit
Dim objFileSystemObject As Object
Dim objDateien As Object
Dim objWeitereDateien As Object
Dim objDatei As Object
Dim ws As Worksheet
Sub Openfile_start()
Set objFileSystemObject = CreateObject("Scripting.FileSystemObject")
Set objDateien = objFileSystemObject.getfolder("c:\test")
Call file_suche
Set objFileSystemObject = Nothing
Set objDateien = Nothing
Application.StatusBar = ""
End Sub
Sub file_suche()
Application.ScreenUpdating = False
Set kst = Cells(4, 2)
For Each objDatei In objDateien.Files
If Right(objDatei.Name, 4) = ".xls" Or Right(objDatei.Name, 5) = ".xlsx" _
Or Right(objDatei.Name, 5) = ".xlsm" Then
Application.StatusBar = "Datei """ & objDatei.Name & """ wird ausgelesen!"
DoEvents
GetObject (objDatei)
hier fangen die Probleme an bzw. hier weiß ich nicht weiter
For Each ws In objDatei
If ws.Name Like kst Then
ThisWorkbook.Worksheets.Move Before:=ActiveWorkbook.Sheets(8)
dieser Teil sollte wieder Funktionieren
'Geöffnete Datei wieder schließen ohne zu speichern
Workbooks(objDatei.Name).Close SaveChanges:=False
End If
Next
End If
Next
For Each objWeitereDateien In objDateien.subfolders
Set objDateien = objWeitereDateien
Call file_suche
Next
End Sub
ich weiß nicht mit welcher Suche ich am Besten arbeite und wie ich diese Sinnig in VBA schreibe.Ich hoffe ihr könnt mir helfen.
VG
Schmitt