Hallo jh,
 
 SUPER vielen vielen Dank das hat mir sehr geholfen ;-)
 
 jh schrieb am 24.04.2008 10:59:32:
 
 Hallo,
 
 wie du sicher festgestellt hast, ist die Sub so angelegt, 
 dass sie mit dem Pfad zu den Textdateien als Parameter 
 aufgerufen wird. Wenn du den Pfad nicht im Code festlegen 
 kannst oder willst, weil es z. B. mehrere Möglichkeiten 
 gibt und die Auswahl dem Benutzer überlassen werden soll, 
 sind von einfach bis kompliziert mehrere Möglichkeiten 
 denkbar.
 
 Private Sub TextDateienEinlesen_Aufrufen()
 Dim vntOrdner As Variant, strPrompt As String, _
 strTitel As String
 strPrompt = "Geben Sie den Pfad ein:"
 strTitel = "Textdateien einlesen"
 vntOrdner = Application.InputBox (Prompt:=strPrompt, _
 Title:=strTitel, Type:=2)
 If Not vntOrdner = False Then
 TextDateienEinlesen CStr(vntOrdner)
 End If
 End Sub
 
 Das ist eine einfache Möglichkeit für versierte Anwender, 
 denen es keine Schwierigkeiten bereitet, den Zielpfad 
 manuell einzugeben. Für DAUs (Dümmster Anzunehmender User)
 :-) ist das eher nix. Damit es ein bisschen professionell 
 aussieht, wäre sowieso der Windows-Standarddialog zur 
 Ordnerauswahl die beste Lösung, aber das geht schon ein
 bisschen ans Eingemachte. Weil ich natürlich nicht alle
 API-Funktionen auswendig kann, habe ich dafür ein bisschen
 gegoogelt und übernehme für das Ergebnis keine Garantie,
 aber ausprobiert habe ich es natürlich.
 
 Füge ein Modul ein, in das folgender Code kommt:
 
 Private Type BrowseInfo
 hWndOwner As Long
 pIDLRoot As Long
 pszDisplayName As Long
 lpszTitle As Long
 ulFlags As Long
 lpfnCallback As Long
 lParam As Long
 iImage As Long
 End Type
 
 Const BIF_RETURNONLYFSDIRS = 1
 Const MAX_PATH = 260
 
 Private Declare Sub CoTaskMemFree Lib "ole32.dll" _
 (ByVal hMem As Long)
 
 Private Declare Function lstrcat Lib "kernel32" Alias _
 "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 _
 As String) As Long
 
 Private Declare Function SHBrowseForFolder Lib _
 "shell32" (lpbi As BrowseInfo) As Long
 
 Private Declare Function FindWindow Lib "user32" Alias _
 "FindWindowA" (ByVal ClassName As String, ByVal WindowName _
 As String) As Long
 
 Private Declare Function SHGetPathFromIDList Lib "shell32" _
 (ByVal pidList As Long, ByVal lpBuffer As String) As Long
 
 Public Function vntOrdner() As Variant
 Dim iNull As Integer, lpIDList As Long, sPath As String, _
 udtBI As BrowseInfo
 vntOrdner = False
 With udtBI
 .hWndOwner = FindWindow(vbNullString, Application.Caption)
 .lpszTitle = lstrcat("Ordner für Textdateien auswählen:", "")
 .ulFlags = BIF_RETURNONLYFSDIRS
 End With
 lpIDList = SHBrowseForFolder(udtBI)
 If lpIDList Then
 sPath = String$(MAX_PATH, 0)
 SHGetPathFromIDList lpIDList, sPath
 CoTaskMemFree lpIDList
 iNull = InStr(sPath, vbNullChar)
 If iNull Then
 vntOrdner = Left$(sPath, iNull - 1)
 End If
 End If
 End Function
 
 Die Function vntOrdner gibt False zurück, wenn der Benutzer
 auf Abbrechen klickt, ansonsten den ausgewählten Ordner mit
 komplettem Pfad.
 
 Gruß
      |