Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
592to596
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
592to596
592to596
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

SHBrowseForFolder mit Default Pfad

SHBrowseForFolder mit Default Pfad
01.04.2005 14:58:38
Heiko S.
Hallo Forum,
mit untenstehendem Code öffene ich den Windows Dialog zur Auswahl eines Pfades.
Läuft auch super, aber ich möchte gerne die Auswahl mit einem Default Pfad und nicht immer von Desktop aus durchführen können.
Habe mich dazu schon ein wenig im Internet umgetan und festgestellt, das scheint nicht so einfach zu sein. Denn leider ist die pidlRoot keine Stringvariable der man mal eben so einfach einen Pfad zuweisen könnte.
Hat jemand sowas schon mal realsiert und könnte mir Tipps geben, ob und wie man das unter EXCEL VBA bewerkstelligen könnte.
Danke für alle Tipps und Anregungen,
Gruß Heiko
' Benutzerdefinierte Variable und API Funktionen zur Pfadauswahl.
Private 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
Private Declare

Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Private Declare 

Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Private Declare 

Sub CoTaskMemFree Lib "ole32" (ByVal hMem As Long)

Function Pfad_auswählen(strText As String) As String
Dim bInfo       As BROWSEINFO
Dim strPath     As String
Dim lngret      As Long
Dim intpos      As Integer
With bInfo
' Einen Default Pfad einzurichten gestaltet sich nicht so einfach, dafür sind weitere
' API Aufrufe notwendig und deswegen hier erstmal nicht weiter verfolgt. So 13.03.05
.pidlRoot = 0&
.lpszTitle = strText
.ulFlags = &H1
End With
lngret = SHBrowseForFolder(bInfo)
strPath = Space$(512)
lngret = SHGetPathFromIDList(ByVal lngret, ByVal strPath)
If lngret Then
intpos = InStr(strPath, Chr$(0))
Pfad_auswählen = Left(strPath, intpos - 1)
Else
Pfad_auswählen = vbNullString
End If
' Speicher wieder frei machen.
CoTaskMemFree lngret
End Function

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SHBrowseForFolder mit Default Pfad
01.04.2005 16:13:42
K.Rola
Hallo,
etwas einfacher:
Option Explicit
Sub get_Folder(Optional capt, Optional initF)
Dim objShell As Object, objFolder As Object, objItem As Object
Set objShell = CreateObject("Shell.Application")
With objShell
Set objFolder = .BrowseForFolder(0&, capt, 0, initF)
End With
If Not objFolder Is Nothing Then
Set objItem = objFolder.Self
MsgBox objItem.Path
End If
End Sub
Sub Aufruf()
Call get_Folder("Was soll ich machen?", "C:\Eigene Dateien")
End Sub

Gruß K.Rola

Der Fleiß ist die Wurzel aller Häßlichkeit.

Oscar Wilde


Anzeige
AW: SHBrowseForFolder mit Default Pfad
02.04.2005 14:02:55
Heiko S.
Hallo K.Rola,
danke für deinen Tipp, komme heute leider noch nicht dazu ihn auszutesten.
Gebe morgen Abend wenn ich ihn getestet habe noch mal ne kurze Rückmeldung.
Wünsche ein schönes sonniges Wochenende,
Gruß Heiko
AW: SHBrowseForFolder mit Default Pfad
03.04.2005 21:18:04
Heiko S.
Hallo K.Rola,
nochmal danke für den Tipp. Er hat geklappt und tut das was ich wollte.
Aber je länger man sich damit beschäftigt desto mehr Ideen kriegt man wie das eigene Makro laufen sollte, darum noch eine Frage.
Wäre es möglich mit SHBrowseForFolder oder .BrowseForFolder(0&, capt, 0, initF) das ganze so zu programmieren, das wenn man einen Defaultpfad angegeben hat im Ordnerauswahlfenster auch wieder "nach oben" springen könnte.
Also wenn z.B. C:\Copy vorgegeben ist, das man "wie im normalen Explorer" auch wieder bis zum Arbeitsplatz (um alle Laufwerke zu sehen) hoch klicken kann.
Ich hoffe mein anliegen ist verständlich.
Also nochmal danke für deinen Tipp und für eine Antwort auf meine neue Frage.

Gruß Heiko
Anzeige
AW: SHBrowseForFolder mit Default Pfad
03.04.2005 22:34:11
K.Rola
Hallo,
das ist mit diesem Dialog nicht möglich.
Gruß K.Rola
AW: SHBrowseForFolder mit Default Pfad
04.04.2005 07:28:26
Heiko S.
Hallo K.Rola,
danke für die Antwort. Nun weiß ich jedenfalls das es so nicht geht.

Gruß Heiko

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige