======[VBA] folderDialog()====== Eine kleine Funktion um einen Ordner auszuwählen. Getestet unter MS Access und MS Excel. Eigentlich ist es ein Wrapper um den eingebauten Folderdialog. Aber man kann den ganzen Dialog über einen einzigen Befehl steuern und muss nicht jedes-mal alle Properties einzeln setzen. {{:vba:functions:udf_folderdialog.bas|download udf_folderdialog.bas}} ===== Definition ===== Public Function folderDialog(Optional iStartFolder As Variant = false) As Variant ==== Parameterliste ==== ***//iStartFolder//** Gibt den Start-Pfad oder False an. ==== Rückgabewert==== Der Rückgabewert ist ein String mit dem ausgewählten Ordnerpfad oder False, falls die Auswahl abgebrochen wurde === Anwendungsbeispiele === Normaler Start. Der Startornder wir dem System überlassen Dim exportFolterPath As String exportFolterPath = folderDialog() If exportFolterPath then //TODO: Export FIle End If Und falls man mit der Ordnersuche an einem bestimmten Ort starten will exportFolterPath = folderDialog("C:\temp") ===== Code ===== Attribute VB_Name = "udf_folderDialog" '------------------------------------------------------------------------------- 'File : udf_folderDialog.bas ' Copyright mpl by ERB software ' http://wiki.yaslaw.info/dokuwiki/doku.php/vba/functions/getfolderdialog 'Environment : VBA 2010 + 'Version : 1.0.0 'Author : Stefan Erb (ERS) 'History : 06.06.2013 - 1.0.0 - ERS - Creation '------------------------------------------------------------------------------- Option Explicit '/** ' * öffnet die Auswahl für Ordner ' * @param Variant Ein Initialpfad oder false ' * @return Varaint Ein Pfad oder false ' */ Public Function folderDialog(Optional ByVal iStartFolder As Variant = Null) As Variant Dim fldR As FileDialog: Set fldR = Application.FileDialog(msoFileDialogFolderPicker) With fldR .Title = "Select a Folder" .AllowMultiSelect = False If IsNull(iStartFolder) Then .InitialFileName = "C:\" Else If Right(iStartFolder, 1) <> "\" Then .InitialFileName = iStartFolder & "\" Else .InitialFileName = iStartFolder End If End If If .Show <> -1 Then GoTo Exit_Handler folderDialog = .SelectedItems(1) End With Exit_Handler: Set fldR = Nothing End Function {{tag>VBA MS_Access}}