PDA

Vollständige Version anzeigen : varFile = Application.GetOpenFilename


freak1982
02.08.2012, 12:09
Hi zusammen,

ich würde gerne die Application.GetOpenFilename() verwenden:


varFile = Application.GetOpenFilename("Text Files (*.ERW), *.ERW", , , "Auswahl", True)
If TypeName(varFile) Like "Boolean" Then
MsgBox "Keine Datei gewählt!", vbInformation
Exit Sub
Else
For intDatei = 1 To UBound(varFile)
Debug.Print varFile(intDatei)
Next intDatei
End If


1. Gibt es eine Möglichkeit, die angezeigten Files weiter einzuschänken. Die Gewünschten Dateien enden alle mit "..._Modell.ERW". Also hätte ich gerne Nur alle angezeigt die mit _Modell.ERW enden.

2. Gibt es eine Möglichkeit einen gewünschten Ordner zu öffen für die Auswahl? Also D:\Ordner2\Ordnersub2. Damit der Benutzer sich nicht immer durch den ganzen Dschungel suchen muss.

Vielen Dank und viele Grüsse

jeder mann
02.08.2012, 15:58
Hallo, freak1982,

meines Wissens kann man nur die Erweiterungen festlegen, nicht aber Teile dess Dateinamens. Den wiewderum kann man in FileSearch einbauen, was aber direkt von Excel ab 2007 nicht mehr unterstützt wird, aber durch expliziten Aufruf eingebunden werden kann.

CurDir auslesen und in Variable speichern zum Zurückwechseln, siehe Beispiel:

Sub Sample()
Dim strVerzeichnis As String

Const cstrVERZEICHNIS As String = "C:\Transport"

strVerzeichnis = CurDir
ChDrive Left(cstrVERZEICHNIS, 1)
ChDir cstrVERZEICHNIS

Debug.Print Application.GetOpenFilename

ChDrive Left(strVerzeichnis, 1)
ChDir strVerzeichnis
End Sub

EarlFred
02.08.2012, 16:04
Hallo Grüsse,

steig auf Filedialog um:
Option Explicit

Sub freak1982()
Dim strFileToOpen As String

With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.InitialFileName = "D:\Ordner2\Ordnersub2\*_Modell.ERW"
If .Show = -1 Then
strFileToOpen = .SelectedItems(1)
Else
MsgBox "Keine Datei gewählt!", vbInformation
End If
End With
End Sub

Grüße
EarlFred

freak1982
03.08.2012, 09:04
Vielen Dank euch zwei,

earlfreds Lösung habe ich gerade mal umgesetzt!

freak1982
03.08.2012, 09:26
Noch eine Abschlussfrage wie kann ich wie oben eine For Schleife bauen:

Ich habe mal

For i = 1 To UBound(.SelectedItems)
varFile(i) = .SelectedItems(i)
Next i

probiert, aber das UBound scheint nicht zu funktionieren.

freak1982
03.08.2012, 09:53
Hab gelöst:

.SelectedItems.Count