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

Unterverzeichnisse

Unterverzeichnisse
14.01.2004 14:06:02
Matze
Hallo,
ich möchte mit Hilfe von Excel VBA von einem Verzeichnis alle Namen der Unterverzeichnisse rausbekommen.
Wäre cool, wenn ihr mir nen kurzen Quellcode-Bsp geben könntet!!!!
Danke schonmal.....

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Warum neuer Beitrag? oT
14.01.2004 14:18:01
Detlef
ot
AW: Warum neuer Beitrag? oT
14.01.2004 14:19:26
Matze
Weil es mein problem noch nicht löst.
Mit der Beispieldatei bekomme ich nur die Namen der Dateien heraus.
Ich möchte aber nicht Dateinamen, sondern Verzeichnisnamen haben...
AW: Warum neuer Beitrag? oT
14.01.2004 14:24:08
P@ulchen
habe ich dann falsch verstanden...
Hättest aber trotzdem drauf antworten können, ist ja wohl nicht zuviel verlangt.
Schließlich bist Du derjenige, der Hilfe benötigt.
Gruß
P@ulchen
Das Forum lebt auch von den Rückmeldungen !
Anzeige
Trotzdem ne Idee
14.01.2004 14:27:46
Matze
Ja, Paulchen stimmt. Ist ja richtig, hätte ich machen sollen, sorry.
Habt ihr vielleicht trotzdem ne Idee, wie ich an die Verzeichnisnamen komme?
AW: Unterverzeichnisse
14.01.2004 14:28:18
K.Rola
Hallo,
sind die Unterverzeichnisse alle auf einer Ebenene oder gibts dort weitere Unterverzeichnisse? Mit anderen Worten, muss rekursiv ausgelesen werden?
Gruß K.Rola
AW: Unterverzeichnisse
14.01.2004 14:33:17
Matze
Hallo,
also schön wäre es , wenn beides ginge.
Aber wahrscheinlich brauche ich nur die Unterverzeichnisse einer Ebene.
AW: Unterverzeichnisse
14.01.2004 16:26:15
ALM
Hallo Matze
hier eine Möglichkeit:

Sub ORDNER_AUSLESEN()
' Variablen Deklaration
Dim NAME As String
Dim PFAD As String
Dim PFAD_ As String
Dim ORDNER(100) As String
' dadurch können maximal 100 Ordner angezeigt werden
Dim ORDNER_Zaehler As Integer
Dim x As Integer
' Variablen Setzen
ORDNER_Zaehler = 0
PFAD = "C:\Programme\"
' hier den Ordner angeben, dessen Unterordner
' angezeigt werden sollen
PFAD_ = PFAD + "\*."
' Ich arbeite mit Office 97, *. war der einzige Befehl,
' der mir nur die Unterorder auflistet. Allerdings, werden
' keine Order angezeigt die einen Punkt enthalten.
' Ein weiteres Problem, Dateien ohne Endungen werden auch
' angezeigt.
' Als Hinweis, bei höheren Office Versionen gibt es Befehle
' bzw. Komponenten dafür. Unter Office 97 gäbe es noch die
' Möglichkeit Komponenten einzubinden
NAME = Dir(PFAD_, vbDirectory)
Do While NAME <> ""
' Diese Schleife wird solange durchlaufen, bis keine eintrag mehr
' vorhanden ist
ORDNER(ORDNER_Zaehler) = PFAD & NAME
ORDNER_Zaehler = ORDNER_Zaehler + 1
NAME = Dir()
Loop
' Beispiel auflisten in einem Tabellenblatt
For x = 0 To 100
Cells(x + 1, 1) = ORDNER(x)
Next x
End Sub

MFG
ALM
Anzeige
AW: Unterverzeichnisse
14.01.2004 16:41:46
Dan
Hallo, hier ein Beispiel wie man dafur den FileSystemObject benutzen koente.
Dan [DDMAIL@seznam.cz]
'************************************************************************
' Wichtig :
' Man muss die Referentz an MS Scripting Runtime Lib. setzen!
' Oder : Fso und Fld als Object deklarieren und Fso so entstehen lassen :
' Set Fso = VBA.CreateObject("Scripting.FileSystemObject")
'************************************************************************
Option Explicit
Private lRow As Long
Private lCol As Long
Private SubFld As Folder
Public Sub Start()
Dim Fso As FileSystemObject
Dim Fld As Folder
Dim vFld

On Local Error Resume Next

Set Fso = New FileSystemObject

vFld = InputBox("Path eingeben", "Path", "C:\Temp")

Set Fld = Fso.GetFolder(CStr(vFld))
If (Fld Is Nothing) Then
MsgBox "Path ungultig", vbCritical
End
End If

On Local Error GoTo PrintFldContent_Err

lRow = 1
lCol = 1
Application.Cells(lRow, lCol).Value = Fld.Name

Call PrintSubFolders(Fld)

Exit Sub

PrintFldContent_Err:
MsgBox "Runtime Error in Procedure PrintSubFolders. Error Number : " & _
Err.Number, vbCritical: End
End Sub



Private Sub PrintSubFolders(ByVal ParentFld As Folder)
On Local Error GoTo PrintSubFolders_Err
For Each SubFld In ParentFld.SubFolders
' hier handle children of ParentFld
' child will be on next line and in next column
If (lCol < Columns.Count) Then lCol = lCol + 1 Else MsgBox "Zuviele Columns.", vbCritical: End
If (lRow < Rows.Count) Then lRow = lRow& + 1 Else MsgBox "Zuviele Rows.", vbCritical: End
Application.Cells(lRow, lCol).Value = SubFld.Name
' finds next children
Call PrintSubFolders(SubFld)
' all children are printed, we have to go back to the parents column
lCol = lCol - 1
Next SubFld
NextFolder:
Exit Sub
PrintSubFolders_Err:
' Permission denied
If (Err.Number = 70) Then
Application.Cells(lRow, lCol).Value = ParentFld.Name & " -> Permission denied. "
GoTo NextFolder
Else
MsgBox "Runtime Error in Procedure PrintSubFolders. Error Number : " & _
Err.Number, vbCritical: End
End If
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige