Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1204to1208
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

Dateipfad vom User abfragen

Dateipfad vom User abfragen
kle
Hallo,
gibt es eine Befehl, um einen Dateipfad von einem User abzufragen ?
Ich würde gern, dass der User einen Zielpfad auswählt...mehr nicht.
D.h. ich suche eine Dialog-Form, in der der User wie bei dem Dialog Öffnen z.B. den Pfad auswählt.
Ich will aber eben keine Datei speichern - sondern nur den Pfad wissen...zu einem Ordner !
Gruß und Danke
Kay

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

Betreff
Benutzer
Anzeige
AW: Dateipfad vom User abfragen
18.03.2011 09:00:39
JoWE
Hallo Kay,
so evtl.:
Sub getPath()
Dim sPfad As String
ChDrive "C"
ChDir "C:\Daten"
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Bitte wählen Sie einen gültigen Pfad aus"
If .Show = -1 Then sPfad = .SelectedItems(1)
End With
If sPfad  "" Then
MsgBox sPfad
Else
Exit Sub
End If
Set fs = Nothing
End Sub

Gruß
Jochen
Set fs = Nothing muß aber wieder raus ;o) oT
18.03.2011 09:08:58
Matthias
AW: Dateipfad vom User abfragen
18.03.2011 09:04:41
haw
Hallo Kay,
irgendwo aus dem Netz:
Public Sub Ordner_Auswahl()
Dim strVerzeichnis As String
Dim strOrdner As String
strOrdner = "C:\temp\"
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = strOrdner
.Title = "Ordnerauswahl"
.ButtonName = "Auswahl..."
.InitialView = msoFileDialogViewList
If .Show = -1 Then
strVerzeichnis = .SelectedItems(1)
If Right(strVerzeichnis, 1)  "\" Then strVerzeichnis = strVerzeichnis & "\"
Else
MsgBox "Es wurde kein Ordner ausgewaehlt!"
Exit Sub
End If
End With
MsgBox strVerzeichnis
End Sub
Gruß
Heinz
Anzeige
AW: oder So
18.03.2011 09:08:27
Ralf_P
Public sPath As String
Public PROJEKT As String
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 Sub CoTaskMemFree Lib "ole32.dll" (ByVal pv As Long)
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Any) As Long
Private Declare Function SHSimpleIDListFromPath Lib "shell32" Alias "#162" _
(ByVal szPath As String) As Long
Private Const BIF_RETURNONLYFSDIRS As Long = 1
Private Const BIF_DONTGOBELOWDOMAIN As Long = 2
Private Const BFFM_INITIALIZED As Long = 1
Private Const MAX_PATH As Long = 260
Private Const WM_USER As Long = &H400
Private Const BFFM_SETSTATUSTEXTA As Long = (WM_USER + 100)
Private Const BFFM_SETSELECTIONA As Long = (WM_USER + 102)
Private Const BFFM_SETSELECTIONW As Long = (WM_USER + 103)
Private Const BFFM_SETSTATUSTEXTW As Long = (WM_USER + 104)
Private Type BROWSEINFO
hwndOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type
' Callback für die Browse-Directory-Methode - "pidList"-Methode
' zur Verwendung in der BrowseDirectory()-Funktion
Private Function BrowseCallBackProc(ByVal hWnd As Long, _
ByVal uMsg As Long, ByVal lParam As Long, _
ByVal lpData As Long) As Long
'Voreinstellung des Verzeichnisses im Verzeichnis-
'Dialog unter Verwendung des Parameters "pidList"
Select Case uMsg
Case BFFM_INITIALIZED
Call SendMessage(hWnd, BFFM_SETSELECTIONA, False, ByVal lpData)
Case Else
End Select
End Function
Private Function FARPROC(pfn As Long) As Long
FARPROC = pfn
End Function

Private Function GetPIDLFromPath(ByVal sPath As String) As Long
GetPIDLFromPath = SHSimpleIDListFromPath(StrConv(sPath, vbUnicode))
End Function

Public Function BrowseDirectory(Optional ByVal strInitialDir As String, Optional ByVal _
hWnd As Long) As String
Dim lpIDList As Long
Dim sBuffer As String
Dim szTitle As String
Dim tBrowseInfo As BROWSEINFO
szTitle = "Bitte wählen Sie das Verzeichnis!"
With tBrowseInfo
.hwndOwner = hWnd
.pidlRoot = 0
.lpszTitle = szTitle
.lpfnCallback = FARPROC(AddressOf BrowseCallBackProc)
.lParam = GetPIDLFromPath(strInitialDir)
End With
lpIDList = SHBrowseForFolder(tBrowseInfo)
If (lpIDList) Then
sBuffer = Space(MAX_PATH)
SHGetPathFromIDList lpIDList, sBuffer
sBuffer = Left(sBuffer, InStr(sBuffer, vbNullChar) - 1)
BrowseDirectory = sBuffer
CoTaskMemFree lpIDList
Else
BrowseDirectory = strInitialDir
End If
' Ressourcen freigeben
CoTaskMemFree tBrowseInfo.lParam
End Function
Sub browser()
Dim strInitialDir As String, strPath As String
Dim sFile As String, sPattern As String
sPath = BrowseDirectory()
If sPath = "" Then Exit Sub
' PROJEKT = Right(sPath, Len(sPath) - InStrRev(sPath, "\"))
' UserForm1.Label2.Caption = PROJEKT
'einlesen
' If Right(sPath, 1) "\" Then sPath = sPath & "\"
' sPattern = "*.*"
MsgBox sPath
End Sub Alles in ein Modul kopieren und "Sub browser" ausführen.
VG, Ralf
Anzeige
SUper vielen Dank für all die Beispiele...
18.03.2011 14:25:11
kle
Habe das von Jochen genutzt...werde aber auch mir die anderen anschauen und testen ;o)
Gruß und vielen Dank Euch allen - es ist eben hier doch das beste Forum was ich kenne ;o)))
Kay
PS: Sollte es mal ein Treffen geben, dann sagt mir Bescheid - dann komm ich und bring 'n Kasten Bier mit !!!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige