Hi,
ich bin mit Windows unterwegs.
der Code ist der Gleiche außer mit anderem Dateipfad.
Bitte entschulidge ich hab bis jetzt nur einfache Sachen mit VBA gemacht. Das übersteigt meinen Horizont. Deswegen muss ich warscheinlich immer wieder dumm nachfragen.
Option Explicit
Dim mFso As Object
Const m_sPfad As String = "G:\DATEN\Herstellberichte\" '<----anpassen
Const m_FileExtension As String = ".XLSM" '<---- Dateityp anpassen und in Großbuchstaben angeben
Dim lCalc As Long
Dim lEvent As Long
Dim lStatusbar As Long
Dim lScreen As Long
Sub main()
On Error GoTo FinishErr
'*** speed up
Call TurnOffFunctionality
'*** Ordner durchsuchen
Set mFso = CreateObject("Scripting.FileSystemObject")
Call OrdnerDurchsuchen(mFso.GetFolder(m_sPfad))
FinishErr:
If Err.Number <> 0 Then
MsgBox Err.Number & vbCrLf & Err.Description
End If
'*** Standard speed
Call TurnOnFunctionality
Set mFso = Nothing
End Sub
Sub OrdnerDurchsuchen(ByRef oFolder As Object)
Dim oSubFldr As Object
Dim oFile As Object
'*** Unterordner durchsuchen
For Each oSubFldr In oFolder.SubFolders
Call OrdnerDurchsuchen(oSubFldr)
Next
'*** Dateien in den Unterordner
For Each oFile In oFolder.Files
'*** Wenn Dateintyp stimmt
If UCase(Right(oFile.Name, 5)) = m_FileExtension Then
Debug.Print oFile.Name '<----- hier das Ergebnis Deiner Messagebox verarbeiten
End If
Next
'*** Objektreferenzen entlassen
Set oSubFldr = Nothing
Set oFile = Nothing
End Sub
Public Sub TurnOffFunctionality()
With Application
lCalc = .Calculation: .Calculation = xlCalculationManual
lStatusbar = .DisplayStatusBar: .DisplayStatusBar = False
lEvent = .EnableEvents: .EnableEvents = False
lScreen = .ScreenUpdating: .ScreenUpdating = False
End With
End Sub
Public Sub TurnOnFunctionality()
With Application
.Calculation = lCalc
.DisplayStatusBar = lStatusbar
.EnableEvents = lEvent
.ScreenUpdating = lScreen
End With
End Sub
|