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

BrowseForFolder ontop

BrowseForFolder ontop
11.02.2017 12:26:51
Thomas
Hallo,
ich benutze folgenden Code um über einen CommandButton in einer UserForm einen Pfad auszuwählen.

Private Sub cmdOrdner_Click()           'Wahl des Pfades
Dim AppShell As Object
Dim BrowseDir As Variant
Dim j As Integer
ListBox1.Clear
Set AppShell = CreateObject("Shell.Application")
Set BrowseDir = AppShell.BrowseForFolder(0, "Ordner auswählen", &H1000, 0)
If BrowseDir Is Nothing Then Exit Sub
Folder = BrowseDir.Items().Item.Path
File = Dir(Folder & "\*.txt")
Do While File  ""
ListBox1.AddItem File
File = Dir
Loop
On Error Resume Next
End Sub
Dabei öffnet sich das BrowseForFolder Fenster. Da die UserForm modeless ist ist es dem Benutzer aber noch gestattet, in Excel weiter zu arbeiten. Klickt man jetzt bei geöffnetem Browserfenster irgendwo auserhalb des Fensters verschwindet dieses in den Hintergrund. Ist es möglich, dass
1. das Fenster immer im Vordergrund ist und man erst wieder etwas anderes anklicken kann wenn der Pfad gewählt wurde oder das Fenster geschlossen wird oder
2. das Fenster sich automatisch schließt, wenn man wo anders hinklickt?
Vielen Dank schonmal
Grüße,
Thomas

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
BrowseForFolder ontop
11.02.2017 20:00:38
Anton
Hallo Thomas,
so?:
Code:

Private Sub cmdOrdner_Click()              'Wahl des Pfades
  Dim AppShell As Object  
  Dim BrowseDir As Variant  
  Dim Folder As String, File As String  
   
  Set AppShell = CreateObject("Shell.Application")  
  With Me
    .Hide
    .ListBox1.Clear
    Set BrowseDir = AppShell.BrowseForFolder(0, "Ordner auswählen", &H1000, 17)  
    If Not BrowseDir Is Nothing Then    
      Folder = BrowseDir.items().Item.Path
      File = Dir(Folder & "\*.txt")
      Do While File <> ""  
        .ListBox1.AddItem File
        File = Dir
      Loop
    End If  
    .Show
  End With  
  Set AppShell = Nothing  
 
End Sub  


mfg Anton
Anzeige
AW: BrowseForFolder ontop
12.02.2017 17:53:59
Thomas
Hallo Anton,
Danke für die Antwort.
Leider erfüllt der Code nicht, was ich möchte. Der Code schließt ja die UserForm und zeigt nur das BrowserFenster. Klicke ich jetzt außerhalb dieses Fensters z.B. aufs Excelsheet verschwindet das BrowserFenster wieder in den Hintergrund.
Ob sich die UserForm schließt oder nicht, ist mir eigentlich egal. Ich möchte gerne, dass 1. entweder das BrowserFenster solange im Vordergrund ist bis ein Pfad ausgewählt wurde oder es geschlossen wurde oder 2. das BrowserFenster sich selber schließt wenn man wo anders hinklickt.
Der Grund ist, dass häufig ein zweites BrowserFenster geöffnet wird, da der Benutzer nicht sieht, dass eis im Hintergrund bereits offen ist. Sind jetzt allerdings zwei geöffnet funktioniert der ganze Code nicht mehr richtig.
Grüße,
Thomas
Anzeige
AW: BrowseForFolder ontop
13.02.2017 01:09:07
Jürgen
Hallo Thomas,
warum in die Ferne schweifen - nutze doch den eingebauten Dialog zur Verzeichniswahl:
Dim dlgAuswahl As FileDialog
Dim OKgedrueckt As Boolean
Dim Verzeichnis As String
Set dlgAuswahl = Application.FileDialog(msoFileDialogFolderPicker)
OKgedrueckt = dlgAuswahl.Show
If OKgedrueckt Then
Verzeichnis = dlgAuswahl.SelectedItems(1)
Gruß, Jürgen
AW: BrowseForFolder ontop
13.02.2017 10:43:32
Thomas
Hallo Jürgen,
Ich persönlich mag das BrowseForFolder Fenster lieber, aber so funktioniert es gut.
Vielen Dank für deine Hilfe.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige