Re: Textbox
28.03.2003 22:52:19
Det
Hallo DieterBesten Dank für die schnelle Antwort.
Ich habe das Problem inzwischen aber anders lösen können.
Ich rufe über eine Befehsschaltfläche einen Browser auf in dem ich den Pfad direkt auswähle wodurch ich sicher bin, dass es den Pfad tatsächlich gibt und ich mir damit die Prüfung erspare.
Der Rückgabewert, also der entsprechend gewählte Pfad wird in eine Zelle geschrieben, da er für die weitere Programmierung benötigt wird. Die eingangs erwähnte Textbox erhält ebenfalls den Rückgabewert.
Das entsprechende Modul habe ich übrigens hier im Archiv gefunden und nur leicht abgeändert. (Anhang)
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
'32-bit API-Deklarationen
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 VerzeichnisauswahlImport()
Dim strMessage As String
strMessage = "Wählen Sie bitte einen Ordner aus:"
GetImport (strMessage)
End Sub
Function GetImport(Optional strMessage) As String
Dim bInfo As BROWSEINFO
Dim strPath As String
Dim lngR As Long, lngX As Long, intPos As Integer
' Ausgangsordner = Desktop
bInfo.pidlRoot = 0&
' Dialogtitel
If IsMissing(strMessage) Then
bInfo.lpszTitle = "Wählen Sie bitte einen Ordner aus."
Else
bInfo.lpszTitle = strMessage
End If
' Rückgabe des Unterverzeichnisses
bInfo.ulFlags = &H1
' Dialog anzeigen
lngX = SHBrowseForFolder(bInfo)
' Ergebnis gliedern
strPath = Space$(512)
lngR = SHGetPathFromIDList(ByVal lngX, ByVal strPath)
If lngR Then
intPos = InStr(strPath, Chr$(0))
GetImport = Left(strPath, intPos - 1)
ActiveWorkbook.Sheets("basis").[n5] = strPath
Else
GetImport = ""
End If
End Function
Gruß