Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1312to1316
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
Dateiverzeichnisspfad auswählen
11.05.2013 11:13:59
Jürgen
Guten Morgen Zusammen,
ich brauche mal eure Hilfe bitte.
Tante Google hat mich nicht wirklich weiter gebracht.
Meine Excelanwendung erstellt eine kleine TXT Datei diese soll je nach Wunsch des Anwenders irgendwo auf seinem Rechner (Laufwerken) abgelegt werden können.
Hierzu wird normalerweise einmal pro Anwender das Laufwerk und der Speicherpfad eingestellt und in einer Zelle in der Anwendung gespeichert.
Ich möchte nun gerne in der Userform ein (Art) Combobox die Laufwerksstruktur und die Verzeichnisse auflisten und den Pfad in der die TXT gespeichert werden auswählen - diese Auswahl soll dann in der oben benannten Zelle abgespeichert werden.
Das ganze ähnlich wie es bei der Funktion "speichern unter" gelöst ist nur halt ohne Dateiname.
Hoffe ich habe mich verständlich ausgedrückt und jemand kann mir helfen.
Danke schon mal im Voraus

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

Betreff
Datum
Anwender
Anzeige
AW: Dateiverzeichnisspfad auswählen
11.05.2013 11:17:58
Hajo_zi
Hallo Jürgen,
Option Explicit                             ' Variablendefinition erforderlich
' damit Makro nicht unter Makro erscheint
Option Private Module
' Projekt weit
Public StOrdner As String                   ' Suchordner
'   von Nepumuk
Private Type InfoT
hwnd As Long
Root As Long
DisplayName As Long
Title As Long
Flags As Long
FName As Long
lParam As Long
Image As Long
End Type
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As InfoT) As Long
Private Declare Function CoTaskMemFree Lib "ole32" (ByVal hMem As Long) As Long
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" _
(ByVal lpStr1 As String, ByVal lpStr2 As String) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" _
(ByVal pList As Long, ByVal lpBuffer As String) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassname As String, ByVal lpWindowName As String) As Long
Function GetAOrdner() As String
Dim xl As InfoT, IDList As Long, RVal As Long, FolderName As String
With xl
.hwnd = FindWindow("xlmain", vbNullString)
'.hwnd = FindWindow("", "Auswahl")  ' Userform Auswahl
.Title = lstrcat("Bitte wählen Sie ein Verzeichnis", "")
.Flags = 1
End With
IDList = SHBrowseForFolder(xl)
If IDList  0 Then
FolderName = Space(256)
RVal = SHGetPathFromIDList(IDList, FolderName)
CoTaskMemFree (IDList)
FolderName = Trim(FolderName)
FolderName = Left(FolderName, Len(FolderName) - 1)
End If
GetAOrdner = FolderName
End Function
'   nicht verwendeter Code Aufruf mit
Sub test()
StOrdner = GetAOrdner                           ' Verzeichnis auswählen
End Sub

Anzeige
AW: Dateiverzeichnisspfad auswählen
11.05.2013 13:05:46
Jürgen
Hallo Hajo,
vielen Dank für deine rasche Antwort.
Irgendwie kapiere ich nicht so ganz was ich tun sollte :-(
Habe die Deklaration und die Funktion in ein Modul kopiert.
Sub test()
habe ich in Combobox gelegt.
Nix passiert
dann habe ich die Sub test auf eine Commandbutton gelegt geht!
Leider wird aber das Fenster zur Laufwerks/Verzeichnisauswahl 2mal hintereinander geöffnet ?
und man muss beide auch auswählen - die Auswahl wird dann auch in B2 abgelegt
Wo mache ich was falsch?
Bin leider net der Profi

AW: Dateiverzeichnisspfad auswählen
11.05.2013 16:25:39
Hajo_zi
dazu kann ich nichts schreiben, da ich den Code nicht sehe. Ich baue auch keine Datei nach. Bei mir wird der Dialog nur einmal aufgerufen.

Anzeige
AW: Dateiverzeichnisspfad auswählen
11.05.2013 13:05:48
Martin
Hallo Jürgen,
ich bevorzuge zur Ordnerauswahl folgende Variante:
Public Sub FileDialog()
Dim Cancel As Boolean
Dim dDatei As Variant
With Application.FileDialog(msoFileDialogFolderPicker)
'.InitialFileName = "C:\"
.Title = "Bitte wählen Sie ein Verzeichnis"
.ButtonName = "Auswahl..."
.InitialView = msoFileDialogViewDetails
If .Show = -1 Then
Cancel = True
dDatei = .SelectedItems(1)
End If
End With
End Sub
Viele Grüße
Martin

AW: Dateiverzeichnisspfad auswählen
11.05.2013 13:12:08
Jürgen
Hallo Martin,
wie bekomme ich die Auswahl ins Tabellenblatt B2 ?
Danke für deine Hilfe
Anzeige

26 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige