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

Pfad mit VBA auslesen

Pfad mit VBA auslesen
31.10.2006 11:50:26
Christian
Hallo Forum,
mit dem VBA Befehl
fileToOpen = Application.GetOpenFilename()
bekommen ich den Namen eines in der Box gewählten Files zurück.
Ich benötige jedoch nur den Pfad!
Wie mache ich das? Gibt es dazu einen analogen Befehl oder muss ich den Filenamen aus der Variablen entfernen (wie?),
Oder kann ich den "GetOpen.." Befehl so ändern das er mir nur den Pfad zurückgibt?
Habe schon etliche Variationen des "GetOpen.." Befehls ausprobiert, jedoch ohne Erfolg.
Danke
Gruß Christian

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

Betreff
Datum
Anwender
Anzeige
AW: Pfad mit VBA auslesen
31.10.2006 12:10:36
Rudi
Hallo,
entweder so:
Sub ttt()
Dim strPfad
strPfad = Application.GetOpenFilename
If strPfad <> False Then strPfad = Left(strPfad, InStrRev(strPfad, "\"))
MsgBox strPfad
End Sub

oder so:
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
Function GetDirectory(Optional Msg) As String
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
Sub tt()
Dim strPfad
strPfad = GetDirectory
End Sub

Gruß
Rudi
Anzeige
DANKE! (o.T.)
31.10.2006 12:18:20
Chrsitian
Danke!
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige