Anzeige
Archiv - Navigation
1112to1116
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

Ordner auflisten

Ordner auflisten
Torsten
Hallo beisammen,
über die Recherche habe ich zum obigen Thema einen Code von Josef Ehrensberger gefunden:
Option Explicit
Dim FSO, FO, FU, F
Dim lRow As Long
Dim icol As Integer
Sub OrdnerAuflisten()
Set FSO = CreateObject("Scripting.FileSystemObject")
icol = 0
lRow = 0
GetSubFolders "E:"
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
GetSubFolders F.Path
Next
icol = icol - 1
End Function

der auch funktioniert. Ich hätte nur gerne eine kleine Anpassung, die ich mit meinen bescheidenen Kenntnissen aber nicht alleine hinbekomme: Ich würde gerne die Pfadangabe über eine Inputbox vom User eingeben lassen. Könnt Ihr mir hier behilflich sein? Vielen Dank für Eure Unterstützung im voraus.
Gruß
Torsten

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Ordner auflisten
09.11.2009 16:45:15
robert
hi,
eine einfache methode
gruß
robert
GetSubFolders= InputBox(prompt:="Eingabe:")
AW: Ordner auflisten
09.11.2009 16:56:19
Torsten
Hallo Robert,
vielen Dank für Deine Rückmeldung.
Leider erhalte ich eine Fehlermeldung: "Fehler beim Kompilieren. Argument ist nicht optional".
Hast Du dazu auch eine Lösung?
Gruß
Torsten
Gleichheitszeichen zuviel
09.11.2009 17:05:29
Erich
Hi,
so:
GetSubFolders InputBox(prompt:="Eingabe:")
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
..hast Recht Erich-sorry...owT
09.11.2009 17:10:49
robert
AW: Gleichheitszeichen zuviel - stimmt: Vielen Dan
09.11.2009 17:10:50
Torsten
@Erich, warum...
09.11.2009 17:14:47
robert
hi Erich,
warum aber hier ein = ?
gruß
robert
Sub InputBoxP()
Dim sTxt As String
sTxt = InputBox(prompt:="Eingabe:")
End Sub

Anzeige
@Robert
09.11.2009 17:37:49
Erich
Hi Robert,
bei
sTxt = InputBox(prompt:="Eingabe:")
wird einer Variablen ein Text zugewiesen. Der Zuweisungsoperator ist "=".
Bei
GetSubFolders InputBox(prompt:="Eingabe:")
wird einer Routine oder Funktion ein Parameter übergeben.
(Der Parameter ist das Ergebnis der Fkt. InputBox().)
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Danke, ich seh schon,1+1 ist nicht immer 2 :-)
09.11.2009 18:21:44
robert
AW: Ordner auflisten
09.11.2009 17:00:53
Erich
Hi Torsten,
hier kannst du den Pfad im Dialog auswählen lassen:

Option Explicit
Dim FSO, FO, FU, F
Dim lRow As Long
Dim icol As Integer
Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" ( _
ByVal pidl As Long, _
ByVal pszPath As String) As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" ( _
lpBrowseInfo As BROWSEINFO) As Long
Sub OrdnerAuflisten()
Set FSO = CreateObject("Scripting.FileSystemObject")
icol = 0
lRow = 0
GetSubFolders getDirectory("Bitte Pfad wählen")
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
GetSubFolders F.Path
Next
icol = icol - 1
End Function
Function getDirectory(Optional msg) As String
Dim bInfo As BROWSEINFO, Path As String, r As Long, x As Long, pos As Integer
bInfo.pidlRoot = 0&
If IsMissing(msg) Then
bInfo.lpszTitle = "Wählen Sie bitte einen Ordner aus."
Else
bInfo.lpszTitle = msg
End If
bInfo.ulFlags = &H1
x = SHBrowseForFolder(bInfo)
Path = Space$(512)
r = SHGetPathFromIDList(ByVal x, ByVal Path)
If r Then
pos = InStr(Path, Chr$(0))
getDirectory = Left(Path, pos - 1)
Else
getDirectory = ""
End If
End Function
getDirectory() habe ich aus https://www.herber.de/forum/archiv/1112to1116/t1115468.htm#1115468 entnommen.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
erledigt - mT
09.11.2009 17:13:24
Torsten
Hallo Erich,
das ist dann die "high sophisticated"-Lösung. :-))
Auch die läuft - natürlich. Vielen Dank für Deine Hilfe.
Gruß
Torsten

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige