Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Verzeichnisse durchsuchen - Dateien ändern

Verzeichnisse durchsuchen - Dateien ändern
01.12.2006 11:00:39
Dr.
Hi zusammen,
ich möchte via VBA ein Verzeichnis inkl. vorhandener Unterverzeichnisse durchsuchen, alle sich dort befindlichen Dateien öffnen, "etwas tun", und wieder schließen.
Das "etwas tun" kann ich, mit dem anderen tue ich mich aber schwer und hoffe auf einen Ansatz.
Besten Dank im voraus!
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verzeichnisse durchsuchen - Dateien ändern
01.12.2006 11:24:31
IngGi
Hallo Dr.,
das geht mit dem rekursiven Aufruf einer Prozedur, d.h. die Prozedur ruft sich selbst immer wieder auf, solange im aktuellen Verzeichnis mindestens ein Unterverzeichnis existiert.

Option Explicit
Dim fso As Object
Dim fo As Object
Dim sf As Object
Dim f As Object
Sub test()
Set fso = CreateObject("Scripting.FileSystemObject")
Set fo = fso.getfolder("C:\Temp")
Rekursiver_Aufruf
End Sub
Sub Rekursiver_Aufruf()
For Each f In fo.Files
   If Right(f.Name, 4) = ".xls" Then
      Workbooks.Open (f.Path)
      'hier dein Code für "etwas tun"
      ActiveWorkbook.Close True
   End If
Next 'f
For Each sf In fo.subfolders
   Set fo = sf
   Rekursiver_Aufruf
Next 'sf
End Sub

Gruß Ingolf
Anzeige
AW: Verzeichnisse durchsuchen - Dateien ändern
01.12.2006 11:28:17
Dr.
Hallo Ingolf,
besten Dank, das werde ich ausprobieren!
AW: Verzeichnisse durchsuchen - Dateien ändern
01.12.2006 11:26:39
haw
Hallo Doc,
hier ein Beispiel zum Einlesen und Listen von mp3-Dateien:

Sub Listen()
Dim sSource$, iCount%, iCounter%
Dim wks As Worksheet
'Startverzeichnis wählen
sSource = VerzeichnisWählen()
ChDrive Left(sSource, 1)
ChDir sSource
Set wks = ThisWorkbook.Worksheets("mp3")
wks.Range("A3:G50000").Clear
With Application.FileSearch
.NewSearch
.LookIn = sSource
.Filename = "*.mp3"
.SearchSubFolders = True
.Execute
iCount = .FoundFiles.Count
For iCounter = 1 To iCount
wks.Range("C1").Value = "Bearbeite Datei Nr. " & iCounter & "..."
wks.Cells(iCounter + 2, 2).Value = .FoundFiles(iCounter)
wks.Hyperlinks.Add Anchor:=wks.Cells(iCounter + 2, 2), Address:=.FoundFiles(iCounter)
wks.Cells(iCounter + 2, 3).Value = Dir(.FoundFiles(iCounter))
wks.Cells(iCounter + 2, 4).Value = (FileLen(.FoundFiles(iCounter))) / 1024 / 1024
'         wks.Cells(iCounter + 2, 6).Value = FileDateTime(.FoundFiles(iCounter))
Next iCounter
End With
Application.StatusBar = False
End Sub

Gruß
Heinz
Anzeige
AW: Verzeichnisse durchsuchen - Dateien ändern
01.12.2006 11:31:46
haw
Hallo Doc
hier noch eine andere Möglichkeit und die fehlende Funktion zur Ordnerauswahl

Sub Listen()
Dim sSource$, iCount%, iCounter%
Dim wks As Worksheet
'Startverzeichnis wählen
sSource = VerzeichnisWählen()
ChDrive Left(sSource, 1)
ChDir sSource
With Application.FileSearch
.NewSearch
.LookIn = sSource
.Filename = "*.xls"
.SearchSubFolders = True
.Execute
iCount = .FoundFiles.Count
For iCounter = 1 To iCount
Workbooks.Open Filename:=.FoundFiles(iCounter)
Set wb = ActiveWorkbook
wb.Worksheets(1).Range("A1").Value = "erledigt"
Next iCounter
End With
End Sub

Public

Function VerzeichnisWählen() As String
Dim Ret As Long
Dim Browse As BROWSEINFO
Dim Liste As Long
Dim Pfad As String, wPos As Integer
Browse.lpszTitle = "Bitte ein Startverzeichnis wählen"
Browse.ulFlags = BIF_RETURNONLYFSDIRS
Liste = SHBrowseForFolder(Browse)
Pfad = String(1024, 0)
Ret = SHGetPathFromIDList(ByVal Liste, ByVal Pfad)
If Ret Then
VerzeichnisWählen = NullTrimmen(Pfad)
End If
End Function

Gruß
Heinz
Anzeige
AW: Verzeichnisse durchsuchen - Dateien ändern
01.12.2006 11:48:58
Dr.
Auch Dir herzlichen Dank! Mit drei verschiedenen Ansätzen sollte das zu schaffen sein.
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige