Maximale Dialog-Eingabe Maske
#1
Hallo,

ich möchte meinen folgenden Code ergänzen bzw. verbessern. Das Dialog Eingabefeld  "Ordner suchen" soll meinen Bildschirm der besseren Übersicht stets voll ausfüllen und in der linken oberen
Ecke meines Bildschirmes beginnen.  Wie muß der Code dazu ergänzt werden?  Im voraus schon mal vielen Dank für eure Hilfe.

Option Explicit

Function GetFolder(Optional ByVal strDefDir = "", Optional ByVal strTitle = "")
    Dim objShell As Object, objFolder As Object
   
    GetFolder = ""
    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.BrowseForFolder(0, strTitle, 0, strDefDir)
    If Not objFolder Is Nothing Then GetFolder = objFolder.Self.Path
    Set objFolder = Nothing
    Set objShell = Nothing
End Function

Sub Ordner_Auswählen()
    Dim strFolder As String
   
    strFolder = GetFolder("C:\", "Ordner wählen")
    If strFolder = "" Then
        MsgBox "Nichts ausgewählt"
    Else
        MsgBox strFolder
    End If
    

End Sub
Top
#2
Hallo Elke,

das ist mit etwas API-Bastelei möglich, siehe z.Bsp. hier im vorvorletzten Beitrag


Gruß Carsten


Edit:

Aber warum nimmst Du nicht den schon 'implantierten' Weg?
Code:
Sub UseFolderDialogOpen()

   Dim lngCount As Long

   ' Open the file dialog
   With Application.FileDialog(msoFileDialogFolderPicker)
       .Title = "Huhu"
       .ButtonName = "Mach mich auf"
       .InitialFileName = "C:\temp\input.xlsx"
       .Show
 
       ' Display paths of each file selected
       For lngCount = 1 To .SelectedItems.Count
           MsgBox .SelectedItems(lngCount)
       Next lngCount

   End With

End Sub

'Oder für Dateien:
Sub UseFileDialogOpen()

   Dim lngCount As Long

   ' Open the file dialog
   With Application.FileDialog(msoFileDialogOpen)
       .Filters.Clear
       .Filters.Add "Alle Excelfiles", "*.xls; *.xlsx; *.xlsm; *.xlsb", 1
       .Filters.Add "Bilder", "*.gif; *.jpg; *.jpeg", 2
       .AllowMultiSelect = True
       .Title = "Huhu"
       .ButtonName = "Mach mich auf"
       .InitialFileName = "C:\temp\input.xlsx"
       .Show
 
       ' Display paths of each file selected
       For lngCount = 1 To .SelectedItems.Count
           MsgBox .SelectedItems(lngCount)
       Next lngCount

   End With

End Sub

Hier findest Du die Filedialogtypen



... und:
Für die Zeit der Excelsitzung wird sich die Platzierung und Größe des Dialogfensters gemerkt.
Meist ist das ausreichend.
[-] Folgende(r) 1 Nutzer sagt Danke an DbSam für diesen Beitrag:
  • Elke Boese
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste