Option
Explicit
Dim
objFileSystemObject
As
Object
Dim
objDateien
As
Object
Dim
objWeitereDateien
As
Object
Dim
objDatei
As
Object
Dim
lngFirstFreeRow
As
Long
Dim
wksAuswertsheet
As
Worksheet
Dim
lngIndex
As
Long
Dim
strOrdner
As
String
Sub
Smiley1_Klicken()
Application.ScreenUpdating =
False
Application.Calculation = xlCalculationManual
Dateiname = Application.ActiveWorkbook.Name
Sheets(
"Tabelle1"
).Activate
Range(Cells(2,
"A"
), Cells(Rows.Count,
"AC"
)).ClearContents
With
Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = ThisWorkbook.Path & "\"
.Title =
"Ordnerauswahl - nur Stundenzettel"
.ButtonName =
"Auswahl..."
.InitialView = msoFileDialogViewList
If
.Show = -1
Then
strOrdner = .SelectedItems(1)
If
Right(strOrdner, 1) <>
"\" Then strOrdner = strOrdner & "
\"
Else
strOrdner =
""
End
If
End
With
If
strOrdner =
""
Then
MsgBox (
"Kein Ordner gewählt!"
), vbInformation
sprungziel:
Set
objFileSystemObject = CreateObject(
"Scripting.FileSystemObject"
)
Set
objDateien = objFileSystemObject.GetFolder(strOrdner)
Set
wksAuswertsheet = ThisWorkbook.Sheets(
"Tabelle1"
)
For
Each
objDatei
In
objDateien.Files
If
objDatei.Name
Like
"*Stunden*"
And
objDatei.Name
Like
"*.xls"
Or
objDatei.Name
Like
"*Std*"
And
objDatei.Name
Like
"*.xls"
Then
lngFirstFreeRow = wksAuswertsheet.Cells(Rows.Count, 1).
End
(xlUp).Offset(1, 0).Row
Application.StatusBar =
"Datei "
""
& objDatei.Name &
""
" wird ausgelesen!"
DoEvents
GetObject (objDatei)
wksAuswertsheet.Cells(lngFirstFreeRow, 3) = _
Workbooks(objDatei.Name).Sheets(1).Range(
"D4"
)
wksAuswertsheet.Cells(lngFirstFreeRow, 4) = _
Workbooks(objDatei.Name).Sheets(1).Range(
"E12"
)
wksAuswertsheet.Cells(lngFirstFreeRow, 5) = _
Workbooks(objDatei.Name).Sheets(1).Range(
"G47"
)
wksAuswertsheet.Cells(lngFirstFreeRow, 6) = _
Workbooks(objDatei.Name).Sheets(1).Range(
"C5"
)
wksAuswertsheet.Cells(lngFirstFreeRow, 7) = _
Workbooks(objDatei.Name).Sheets(1).Range(
"D9"
)
wksAuswertsheet.Cells(lngFirstFreeRow, 8) = _
Workbooks(objDatei.Name).Sheets(1).Range(
"E9"
)
wksAuswertsheet.Cells(lngFirstFreeRow, 9) = _
Workbooks(objDatei.Name).Sheets(1).Range(
"D10"
)
wksAuswertsheet.Cells(lngFirstFreeRow, 10) = _
Workbooks(objDatei.Name).Sheets(1).Range(
"E10"
)
wksAuswertsheet.Cells(lngFirstFreeRow, 11) = _
Workbooks(objDatei.Name).Sheets(1).Range(
"D11"
)
wksAuswertsheet.Cells(lngFirstFreeRow, 12) = _
Workbooks(objDatei.Name).Sheets(1).Range(
"E11"
)
wksAuswertsheet.Cells(lngFirstFreeRow, 13) = _
Workbooks(objDatei.Name).Sheets(1).Range(
"D4"
)
wksAuswertsheet.Cells(lngFirstFreeRow, 14) = _
Workbooks(objDatei.Name).Sheets(1).Range(
"E12"
)
wksAuswertsheet.Cells(lngFirstFreeRow, 15) = _
Workbooks(objDatei.Name).Sheets(1).Range(
"G47"
)
wksAuswertsheet.Cells(lngFirstFreeRow, 16) = _
Workbooks(objDatei.Name).Sheets(1).Range(
"K5"
)
wksAuswertsheet.Cells(lngFirstFreeRow, 17) = _
Workbooks(objDatei.Name).Sheets(1).Range(
"L9"
)
wksAuswertsheet.Cells(lngFirstFreeRow, 18) = _
Workbooks(objDatei.Name).Sheets(1).Range(
"M9"
)
wksAuswertsheet.Cells(lngFirstFreeRow, 19) = _
Workbooks(objDatei.Name).Sheets(1).Range(
"L10"
)
wksAuswertsheet.Cells(lngFirstFreeRow, 20) = _
Workbooks(objDatei.Name).Sheets(1).Range(
"M10"
)
wksAuswertsheet.Cells(lngFirstFreeRow, 21) = _
Workbooks(objDatei.Name).Sheets(1).Range(
"L11"
)
wksAuswertsheet.Cells(lngFirstFreeRow, 22) = _
Workbooks(objDatei.Name).Sheets(1).Range(
"M11"
)
wksAuswertsheet.Cells(lngFirstFreeRow, 23) = _
Workbooks(objDatei.Name).Sheets(1).Range(
"R9"
)
wksAuswertsheet.Cells(lngFirstFreeRow, 24) = _
Workbooks(objDatei.Name).Sheets(1).Range(
"S9"
)
wksAuswertsheet.Cells(lngFirstFreeRow, 25) = _
Workbooks(objDatei.Name).Sheets(1).Range(
"R10"
)
wksAuswertsheet.Cells(lngFirstFreeRow, 26) = _
Workbooks(objDatei.Name).Sheets(1).Range(
"S10"
)
wksAuswertsheet.Cells(lngFirstFreeRow, 27) = _
Workbooks(objDatei.Name).Sheets(1).Range(
"R11"
)
wksAuswertsheet.Cells(lngFirstFreeRow, 28) = _
Workbooks(objDatei.Name).Sheets(1).Range(
"S11"
)
wksAuswertsheet.Cells(lngFirstFreeRow, 29) = _
Workbooks(objDatei.Name).Sheets(1).Range(
"U33"
)
wksAuswertsheet.Hyperlinks.Add Anchor:=wksAuswertsheet.Cells(lngFirstFreeRow, 1), _
Address:=strOrnder & objDatei.Name
Workbooks(objDatei.Name).Close SaveChanges:=
False
End
If
Next
Dim
SubFolder
As
Object
For
Each
SubFolder
In
objDateien.SubFolders
Set
strOrdner = SubFolder
GoTo
sprungziel
Next
SubFolder
Application.ScreenUpdating =
True
Application.Calculation = xlCalculationAutomatic
Set
objFileSystemObject =
Nothing
Set
objDateien =
Nothing
Set
wksAuswertsheet =
Nothing
Application.StatusBar =
""
ThisWorkbook.Save: MsgBox
"Fertig - Stundenzettel eingelesen"
, vbInformation,
"Stundenzettel einlesen..."
End
Sub