Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
616to620
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
616to620
616to620
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Verzeichnisse per VBA

Verzeichnisse per VBA
30.05.2005 11:36:36
Claus
Grüezi midanand,
ich suche nach einer Möglichkeit, ein Verzeichnis auf Unterverzeichnisse und Dateien zu überprüfen.
In einem ersten Schritt soll überprüft werden, ob das Verzeichnis überhaupt existiert. (Das habe ich schon)
Im zweiten Schritt, den ich neu einbauen will, soll auf Unterverzeichnisse geprueft werden. Und hier bringt er mir eine Fehlermeldung, wenn kein Unterverzeichnis, sondern nur Dateien da sind.
Ich checke mit
"MyName = Dir(MyPath, vbDirectory)")
Wenn MyName kein Directory ist, soll er weitermachen und steigt mir dann bei
MyName = Dir
mit der Fehlermeldung "Invalid ProcedureCall or Argument" aus.
MyName hat dann (noch) den Wert "."
Wie mache ich das also korrekt?
Danke fuer Eure Hilfe
Gruss
Claus

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

Betreff
Datum
Anwender
Anzeige
AW: Verzeichnisse per VBA
30.05.2005 13:25:34
Frank
Hallo Claus,
vielleicht kannst Du hiermit etwas anfangen:
Option Explicit
Private astrDateien() As String
Sub Test()
Dim intI As Integer
sSucheDatei "C:\Temp\"
For intI = LBound(astrDateien()) To UBound(astrDateien())
Debug.Print astrDateien(intI)
Next intI
End Sub

Private Sub sSucheDatei(strPath As String)
Dim intI As Integer
Dim blnDisplayStatusBar As Boolean
Dim blnNotDisplayStatusBar As Boolean
On Error GoTo PROC_ERR
If Dir(strPath, vbDirectory) <> "" Then
blnDisplayStatusBar = Application.DisplayStatusBar
If Err.Number <> 0 Then
Err.Clear
blnNotDisplayStatusBar = True
Else
Application.DisplayStatusBar = True
Application.StatusBar = "Durchsuche """ & strPath & """ ..."
End If
On Error GoTo PROC_ERR
With Application.FileSearch
.NewSearch
.LookIn = strPath
.SearchSubFolders = True
.Filename = "*.*"
.MatchTextExactly = True
.FileType = msoFileTypeAllFiles
.Execute
For intI = 1 To .FoundFiles.Count
ReDim Preserve astrDateien(1 To intI)
astrDateien(intI) = .FoundFiles(intI)
Next
End With
If blnNotDisplayStatusBar = False Then
Application.StatusBar = ""
Application.DisplayStatusBar = blnDisplayStatusBar
End If
End If
PROC_EXIT:
Exit Sub
PROC_ERR:
MsgBox "Fehler #" & Err.Number & vbCrLf & Err.Description, vbExclamation, "

Private Sub sSucheDatei()"
Resume PROC_EXIT
End Sub

Viel Erfolg
Frank.
Anzeige
AW: Verzeichnisse per VBA
30.05.2005 14:21:43
Claus
Hallo Frank,
danke fuer Deine Antwort.
So wie ich das sehe, faengst Du die Fehlermeldung "einfach" ab, oder? Hmmm... ist ne gute Idee...
Werde ich mal ausprobieren.
Danke
Claus
AW: Verzeichnisse per VBA
30.05.2005 16:44:25
Frank
Hallo Claus,
jetzt mußte ich erst mal suchen, was Du mit Fehler abfangen meintest. Jetzt habe ich verstanden, was Du meinst!
Sorry, ich habe die Quelle aus einem größeren Programm herausgezogen und gestutzt. Deshalb das mit "Err.Number". Das brauchst Du aber nicht machen. Hier eine (ungeprüfte) kürzere Version:
Option Explicit
Private astrDateien() As String
Sub Test()
Dim intI As Integer
sSucheDatei "C:\Temp\"
For intI = LBound(astrDateien()) To UBound(astrDateien())
Debug.Print astrDateien(intI)
Next intI
End Sub

Private Sub sSucheDatei(strPath As String)
Dim intI As Integer
On Error GoTo PROC_ERR
If Dir(strPath, vbDirectory) <> "" Then
With Application.FileSearch
.NewSearch
.LookIn = strPath
.SearchSubFolders = True
.Filename = "*.*"
.MatchTextExactly = True
.FileType = msoFileTypeAllFiles
.Execute
For intI = 1 To .FoundFiles.Count
ReDim Preserve astrDateien(1 To intI)
astrDateien(intI) = .FoundFiles(intI)
Next
End With
End If
PROC_EXIT:
Exit Sub
PROC_ERR:
MsgBox "Fehler #" & Err.Number & vbCrLf & Err.Description, vbExclamation, "

Private Sub sSucheDatei()"
Resume PROC_EXIT
End Sub

Viel Erfolg
Frank.
Anzeige
AW: Verzeichnisse per VBA
30.05.2005 16:55:03
Claus
Grins... DAS kenne ich...
Ich habe mir Deinen Code in der Zwischenzeit noch ein paar mal angeschaut.
So wie es aussieht, arbeitest Du mit Filesearch und Error-Codes...
Hmmm... ist ein anderer Weg als ich mit der Dir-Funktion bisher gegangen bin...
Wie gesagt, ich arbeite mich da durch...
Danke nochmal fuer Deine Hilfe.
Gruss
Claus

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige