Sub Deb()
'clean
Range("B2:B65536").Select
Selection.ClearContents
Range("A1").Select
Dim wks As Worksheet
Dim vRow As Variant
Dim iRow As Integer, iCounter As Integer
Dim sPath As String
sPath = "C:\ALR\07 Excel-Forum\Vergleich\"
Dim s As String
s = InputBox("Bitte Pfad auswählen oder bestätigen", "Pfadangabe", sPath)
If s = "" Then Exit Sub
Application.ScreenUpdating = False
Set wks = ActiveSheet
'sPath = "C:\ALR\07 Excel-Forum\Vergleich\"
With Application.FileSearch
.NewSearch
.LookIn = s
.SearchSubFolders = True
.FileType = msoFileTypeExcelWorkbooks
.FileName = "0*"
.Execute
For iCounter = 1 To .FoundFiles.Count
'vorher 5
iRow = 5
Workbooks.Open .FoundFiles(iCounter), False
Do Until IsEmpty(Cells(iRow, 4))
vRow = Application.Match(Cells(iRow, 4).Value, wks.Columns(1), 0)
If Not IsError(vRow) Then
wks.Cells(vRow, 2).Value = Dir(.FoundFiles(iCounter))
'wks.Cells(vRow, 3).Value = sPath
End If
iRow = iRow + 1
Loop
ActiveWorkbook.Close savechanges:=False
Next iCounter
End With
Application.ScreenUpdating = True
Range("A1").Select
End Sub
Es werden unter dem Verzeichnis mehrer Excelmappen durchsucht. Diese können aber unterschiedliche Speicherstände haben. Datei1 wurde mit der ersten Tabelle (aktiv) abgespeichert, Datei2 mit dem 3. uns. Die gewünschten/gesuchten Daten stehen jedoch immer im ersten Tabellenblatt.
Sollte eine auszuwertende Excelmappe nicht mit dem ersten Tabellenblatt abgespeichert worden sein, wird für diese Datei kein Ergebnis zurückgemeldet. Es ist sozusagen kein Wert gefunden worden.
Was muss ich tun damit IMMER das erste Tabellenblatt abgefragt wird? Egal wie die Datei abgespeichert wurde.
Vermute die Position direkt nach dem Aufruf der Datei?
Im Voraus großen Dank.
Alex.