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

Ordnerauswahl mit Pfad

Ordnerauswahl mit Pfad
25.08.2003 10:03:39
Peter
Hallo Leute,
ich habe diesen Code im Forum gefunden. Er öffnet eine Auswahlbox, in welcher dann ein Ordner ausgewählt werden kann - nur leider ohne den kompletten Pfad. Weiß jemand, wie man diesen netten kleinen Code erweitern kann, um den kompletten Pfad zu erhalten? Vielen Dank im Voraus Gruß Peter
Option Explicit
''**********************************************************************
''Verweis auf SHDOC401.DLL erforderlich
''Microsoft Shell Controls and Automation
''**********************************************************************

Sub ShellTest()
Dim objS As Shell
Dim objFo As Folder
Set objS = New Shell
With objS
Set objFo = .BrowseForFolder(0&, "Wählen Sie einen Ordner...", 0, 12)
End With
On Error Resume Next
MsgBox "Gewählt wurde: " & objFo.Title
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ordnerauswahl mit Pfad
25.08.2003 13:07:50
Peter
Hallo Nike, danke für Deinen Tip.
Ehrlich gesagt, da komme ich jetzt aber trotzdem nicht mit klar. Ich weiß halt nicht, wie dieser Code funktioniert, denn zu ".BrowseForFolder" finde ich nirgends eine Online-Hilfe. Was bedeuten die Zahlen hinten (...", 0, 12), usw. Wäre es denn sehr aufwändig, wenn Du mir den obigen Code ergänzt, so daß ich auch den Pfad des Ordners sehe?
Naja, sorry - vielleicht schaust Du ja nochmal rein. Erstmal danke - Peter

Anzeige
AW: Ordnerauswahl mit Pfad
25.08.2003 13:41:20
Nike
Hi Peter,
Hier mal die praktische Anwendung
(Die Testprozedur DirAuswahl muß unten eingefügt werden,
da es sonst zu einer Fehlermeldung kommt,
ich hab's nur der Übersicht halber nach oben gestellt...):
'Benutzerdefinierter Typ,
'gilt Modulweit und wird
'fuer die Funktion getdirectory benoetigt

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


Bye
Nike

Anzeige
AW: Ordnerauswahl mit Pfad
25.08.2003 16:23:25
Peter
Ahhhh GROSSARTIG :OD Es funktioniert!!!! Deinen Code verstehe ich zwar noch weniger, als den ersten Code, aber er funktioniert und das ist die Hauptsache. Danke - endlich!! Ich bin schon sehr lange auf der Suche nach dieser Möglichkeit und auch das Herber-Archiv wollte es bisher nicht hergeben. 1000 Dank noch einmal.
Wieso könnt ihr eigentlich alle so gut programmieren?
Gruß Peter

AW: Ordnerauswahl mit Pfad
25.08.2003 19:18:30
Nike
Hi,
wir können alle gar nicht so gut programmieren,
wir wissen nur, wo wir suchen müssen ;-)
Bye
Nike
P.S. Freut mich, das es funkt...

AW: Ordnerauswahl mit Pfad
26.08.2003 06:39:14
Peter
Na wenn das stimmt, würde es mich jetzt doch etwas trösten - so als Hobbyprogrammierer ;o) Damit unser Beitrag auch alles etwas bringt, hier noch einmal der Code im Ganzen:
Dieser Code öffnet eine Windows-Auswahlbox, mit welcher ein beliebiger ORDNER/FOLDER spezifiziert werden kann. Als Rückgabewert erhält man den kompletten Pfad der Auswahl. Nike & PT wünschen allen Usern weiterhin viel Erfolg.
'------------------------------------------------------------------------------------
Public Type BROWSEINFO
'Code zum Auswählen eines Ordners - der Pfad wird gespeichert
'Benutzerdefinierter Typ, gilt Modulweit und wird
'fuer die Funktion getdirectory benoetigt
'ACHTUNG: Diese Declaration muß immer im Kopfbereich des Moduls stehen
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 DirAuswahl()
xDIR = getdirectory()
MsgBox ("Der Ordner war: " & xDIR)
End Sub


Function getdirectory(Optional msg) As String
'Funktion um ein Verzeichnis von Benutzer angeben zu lassen.
Dim bInfo As BROWSEINFO
Dim Path As String
Dim 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

'----------------------------------------------------------------------------------

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige