Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
624to628
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
624to628
624to628
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Verzeichnisse auswählen

Verzeichnisse auswählen
22.06.2005 16:29:50
TomKo
Hallo,
ich möchte gern den Nutzer in einer Dialogbox mehrere Verzeichnisse wählen lassen, die später vom Makro durchsucht werden sollen und die Dateien drin automatisch verarbeitet.
Ich stelle mir das so ähnlich wie "GetOpenFilename" mit Multiselection vor - nur eben für Verzeichnisse. Hat Irgend jemand eine Idee?

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

Betreff
Datum
Anwender
Anzeige
AW: Verzeichnisse auswählen
24.06.2005 17:18:49
Hajo_Zi
Hallo TomKo,
hier mal ein Code von Nepumuk

Option Explicit
'   von Nepumuk
Dim NeuOrdner As String
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
Public Sub Ordner_suchen()
NeuOrdner = GetAOrdner
End Sub
Private 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

Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.


Anzeige
AW: Verzeichnisse auswählen
24.06.2005 18:36:48
TomKo
Hallo Hajo_Zi
danke für die Antwort. Ist nicht ganz das, was ich gesucht habe, aber das generelle Problem, Ordner zu wählen, hatte ich auch noch nicht gelöst. Habe ich auf jeden Fall mal was, was in meine Codesammlung kommt und was ich versuchen kann, nachzuvollziehen;-)))
Mein eigentliches Problem war, das ich gern folgendes wollte:
* Makro öffnet Fenster
* Nutzer klappt einen Ordner mit Unterordnern auf
* Mit Shift oder Ctrl werden mehrere Unterordner ausgewählt
* Mit OK wird diese Auswahl dem Makro übergeben
(sowas geht z.B. im rechten Fenster des Explorers. Für mich selbst behelfe ich mich mit dem Total Commander, der hat eine Funktion, sämtliche gewählte Dateien / Ordner als Text - jeweils mit neuer Zeile - in die Zwischenablage zu übernehmen.)
Naja, vielleicht hatte jemand das Problem schonmal und weiß die Lösung noch. Ist schon klar - unübliches Problem und schwer zu lösen. Selbst um *einen* Ordner auszuwählen muß man schon Funktionen aus Kernel uns Shell bemühen...
Anzeige
AW: Verzeichnisse auswählen
24.06.2005 18:39:33
TomKo
Ups - vergessen, die Frage als noch offen zu kennzeichen.
Tschulligung ;-))

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige