Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1384to1388
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Dateien in Unterverzeichnisse

Dateien in Unterverzeichnisse
14.10.2014 13:29:35
dip
Hallo Allerseits,
Gerne würde ich folgende Problemstellung in das Forum einbringen, in der Hoffnung, jemand kann mir weiterhelfen :-)
Ich habe folgendes Makro:
Option Explicit
Const strPath As String = "C:\Users\xxx\EditBox\" 'Verzeichnis anpassen!!!
Sub Main()
Dim strDateiname As String
Dim wkbBook As Workbook
Dim lngLastRowQ As Long
Dim lngLastRowZ As Long
Dim lngLastCol As Long
Dim intCalc As Integer
Dim i As Long
On Error GoTo Fin
With Application
.ScreenUpdating = False
.AskToUpdateLinks = False
.EnableEvents = False
intCalc = .Calculation
.Calculation = xlCalculationManual
.DisplayAlerts = False
End With
'strDateiname = Dir$(ThisWorkbook.Path & "\*.xls")  Dateityp anpassen!!!
strDateiname = Dir$(strPath & "\*.xlsm")
Do While strDateiname  ""
If strDateiname  ThisWorkbook.Name Then
Set wkbBook = Workbooks.Open(strPath & strDateiname)
' Start des Codes!!!
' Ende des Codes!!!
wkbBook.Close savechanges:=True ' True wenn gespeichert werden soll, False wenn  _
nicht!!!
Set wkbBook = Nothing
End If
strDateiname = Dir$()
Loop
Fin:
Set wkbBook = Nothing
With Application
.ScreenUpdating = True
.AskToUpdateLinks = True
.EnableEvents = True
.Calculation = intCalc
.DisplayAlerts = True
End With
If Err.Number  0 Then MsgBox "Error: " & _
Err.Number & " " & Err.Description
MsgBox "Done!", vbInformation
End Sub

Mit diesem Makro werden alle Dateien in einem bestimmten Verzeichnis geöffnet, das entsprechende Makro ausgeführt (zwischen "Start des Codes" und "Ende des Codes"), und die Datei abgespeichert.
Nun würde ich gerne, dass auch alle Dateien in den Unterordnern in diesem Verzeichnis geöffnet, bearbeitet und abgespeichert werden.
Wie müsste das Makro geändert/ergänzt werden, damit auch alle Dateien in den Unterverzeichnissen mitberücksichtigt werden?
Ich bin für jeden Tipp/Hilfe sehr dankbar!
Beste Grüsse
Patrick

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateien in Unterverzeichnisse
14.10.2014 14:32:55
Peter
Hallo
Anbei ein kleines Makro, das sämtliche Dateien unterhalb es Pfades ausgiebt (rekursive Funktion).

Option Explicit
Const StartDir = "F:\"
Dim fso As Object
Sub AllFiles()
Set fso = CreateObject("Scripting.FileSystemObject")
processfolder (fso.getfolder(StartDir).Path)
End Sub
Sub processfolder(FName As String)
Dim myFolder, mySFolder, myFile As Object
Set myFolder = fso.getfolder(FName)
For Each mySFolder In myFolder.subfolders
processfolder (mySFolder.Path)
Next
For Each myFile In myFolder.Files
'Debug.Print myFile.Path
Debug.Print myFile.Name
Next
End Sub

Anzeige
AW: Dateien in Unterverzeichnisse
15.10.2014 16:53:14
dip
Danke für dein Input Peter!
ich müsste jedoch wissen wie das von mir dargestellte Makro angepasst werden müsste, damit alle Dateien in den Unterverzeichnissen auch geöffnet werden können.
Wüsste jemand die Lösung dazu?
Beste Grüsse
Patrick

AW: Dateien in Unterverzeichnisse
16.10.2014 11:02:46
Peter
Hallo
Du musst folgende Procedur anpassen (die MsgBox kannst du auch weglassen, in WorkOnWorkbook würde nun dein Code reinkommen)

Sub processfolder(FName As String)
Dim myFolder, mySFolder, myFile As Object
Dim myExtension As String
Set myFolder = fso.getfolder(FName)
For Each mySFolder In myFolder.subfolders
processfolder (mySFolder.Path)
Next
For Each myFile In myFolder.Files
myExtension = UCase(fso.getextensionname(myFile))
If (myExtension = "XLS") Or (myExtension = "XLSX") Or (myExtension = "XLSM") Then
If MsgBox("Open File: " & myFile.Path, vbYesNo) = vbYes Then
WorkOnWorkbook (myFile.Path)
End If
End If
Next
End Sub
Sub WorkOnWorkbook(mypath As String)
Dim Wkb As Workbook
Set Wkb = Workbooks.Open(mypath)
Set Wkb = Nothing
End Sub

Anzeige
AW: Dateien in Unterverzeichnisse
16.10.2014 15:17:48
dip
Hallo Peter,
Danke für deine Nachricht.
Ich möchte nicht dein Makro anpassen bzw. mir fehlt auch das notwendige knowhow dazu.
Gerne würde ich mein Makro anpassen/erweitern, bzw. ein anderes Makro verwenden, dass 1:1 meines entspricht und zusätzlich alle Dateien im Unterverzeichnis "mitöffnet".
Gibt es eine Lösung?
Grüsse
Patrick

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige