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

Ordnerstruktur

Ordnerstruktur
20.04.2007 12:53:00
Ralf
Hallo,
ich suche eine Funktion, um eine Ordnerstruktur + Unterordner (ohne Dateien) in einer Tabelle aufzulisten.
Habe bereits im Archiv gesucht, jedoch ichts passendes gefunden.
Weiß jemand einen Tip?
Gruß Ralf

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ordnerstruktur
20.04.2007 12:57:19
yogi
Tach Ralf
geh mal mit "Dateilisten" im Archiv auf Suche
Gruss yogi

AW: Ordnerstruktur
20.04.2007 13:09:52
nighty
hi ralf :-)
von einem anderen netten user erstellt .-)
grundkenntnisse vorrausgesetzt !!!
gruss nighty
EINLESEN ist das zu startende makro
ORDNERNAME die übergabevariable
Option Explicit
Private Type BrowseInfo
hwndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pIDList As Long, ByVal lpBuffer As String) As Long
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
Dim Verzeichnisse()
Dim Dateien()
Dim Anzdateien As Long
Sub Einlesen()
Dim Ordnername
Dim Pfad1 As String
Dim Obergrenze As Long
Dim Anzordner As Long
Dim i As Long
Const cVerzeichnistiefe = 5
Dim intVerzeichnistiefe As Integer
Dim Start As Long
Ordnername = Ordnerwählen("Ab welchem Verzeichnis einlesen?")
If Ordnername = False Then Exit Sub
ChDir Ordnername
ChDir ".."
If Ordnername "" Then
Anzdateien = 0
intVerzeichnistiefe = 0
Pfad1 = Ordnername
If Right(Ordnername, 1) "\" Then Pfad1 = Pfad1 & "\"
ReDim Verzeichnisse(0)
Verzeichnisse(0) = Pfad1
Obergrenze = UBound(Verzeichnisse)
ReDim Dateien(0)
Rekursion:
For i = Start To Obergrenze
Verzeichnisse_suchen Verzeichnisse(i), Obergrenze
intVerzeichnistiefe = intVerzeichnistiefe + 1
Start = Start + 1
Obergrenze = UBound(Verzeichnisse)
If intVerzeichnistiefe intVerzeichnistiefe = intVerzeichnistiefe - 1
Next
Anzordner = Obergrenze + 1
If Anzordner = 0 Then
MsgBox "Es gibt nichts zu tun!", vbInformation + vbOKOnly, "Keine Ordner"
Else
For i = 0 To Anzordner - 1
Cells(i + 1, 1).Value = Verzeichnisse(i)
Next
End If
End If
End Sub



Private Sub Verzeichnisse_suchen(ByVal Pfad As String, ByVal Arraygrenze As Long)
Dim Name1 As String
Name1 = Dir(Pfad, vbDirectory)
Do While Name1  ""
If Name1  "." And Name1  ".." Then
If (GetAttr(Pfad & Name1) And vbDirectory) = vbDirectory Then
Arraygrenze = Arraygrenze + 1
ReDim Preserve Verzeichnisse(Arraygrenze)
Verzeichnisse(Arraygrenze) = Pfad & Name1 & "\"
End If
End If
Name1 = Dir
Loop
End Sub



Private Function Ordnerwählen(ByVal strTitle As String) As String
Dim lngIDList As Long
Dim strBuffer As String
Dim UserBrowseInfo As BrowseInfo
With UserBrowseInfo
.hwndOwner = 0
.lpszTitle = lstrcat(strTitle, "")
.ulFlags = 3
End With
lngIDList = SHBrowseForFolder(UserBrowseInfo)
If (lngIDList) Then
strBuffer = Space(260)
SHGetPathFromIDList lngIDList, strBuffer
strBuffer = Left(strBuffer, InStr(strBuffer, vbNullChar) - 1)
Ordnerwählen = strBuffer
End If
End Function


Anzeige
AW: Ordnerstruktur
20.04.2007 13:20:05
Case
Hallo,
ein Beispiel aus dem Archiv:

Option Explicit
Dim fso, FO, FU, F
Dim lRow As Long
Dim icol As Integer
Public Sub Ordner_Auflisten()
Set fso = CreateObject("Scripting.FileSystemObject")
icol = 0
lRow = 0
GetSubFolders "C:\Temp"
End Sub
Function GetSubFolders(Pfad)
Set FO = fso.getfolder(Pfad)
Set FU = FO.subfolders
On Error Resume Next
For Each F In FU
lRow = lRow + 1
icol = icol + 1
Cells(lRow, icol) = F.Name
Cells(lRow, icol + 1) = F.Size
GetSubFolders F.Path
Next
icol = icol - 1
End Function


Servus
Case

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige