Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.04.2024 20:05:21
28.04.2024 18:33:31
28.04.2024 18:25:12
28.04.2024 14:18:05
Anzeige
Archiv - Navigation
1900to1904
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
Filter nach "String".* in .GetOpenFilena
17.10.2022 20:43:12
Ben.Blake
Hallo,
gibt es eigentlich eine Möglichkeit, in einem .GetOpenFilename-Fenster nicht nur nach Erweiterungen, sondern auch nach Dateinamen zu filtern?
Der Hintergrund ist folgender, Wir müssen immer wieder Reports oder Parameterdateien importieren, die nach dem Schema *Seriennummer*.* benannt sind und von denen es ggf. mehrere Versionen gibt. meistens brauchen wir die neueste und das ist als Standard-Option auch so drin, aber manchmal brauchen wir eine bestimmte ältere und da wäre dann eine Auswahl sinnvoll (momentan wird die nochmal geöffnet und gespeichert o.ä., damit sie dann die neueste ist).
Die Frage ist nun, ob sich das irgendwie mit .GetOpenFilename lösen läßt, oder ob ich da ein Auswahlfenster als Userform bauen muß...
Danke schonmal!
Ben

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Filter nach "String".* in .GetOpenFilena
17.10.2022 21:07:48
Daniel
Hi
statt "*.xlsx" sollte auch der Filter "*Seriennummer*.xlsx" funktionieren.
Gruß Daniel
AW: Filter nach "String".* in .GetOpenFilena
17.10.2022 21:13:15
Ben.Blake
Und wie mache ich das? Ich hab es mit

Application.GetOpenFilename("csv-Dateien (*.csv),*Test1*.csv)")
versucht und das ignoriert er einfach.
Und mit

Application.GetOpenFilename("*Test1*.csv-Dateien (*Test1*.csv),*Test1*.csv)")
zeigt er alles an...
Mach ich da irgendwas falsch?
GetSaveAsFilename statt GetOpenFilename
18.10.2022 11:33:15
Daniel
Nein, du machst nichts falsch.
ich habe mich geirrt, der Filter von GetOpenFilename kann nur nach Dateitypen filtern, aber nicht nach nach Namen.
du kannst also entweder das FilesystemObject verwenden wie von den Kollegen vorgeschlagen, oder du kannst als Workaround, wenn du dich nicht an den unpassenden Beschriftungen störst, die Funktion GetSaveAsFileName verwenden. Bei GetSaveAsFilename kann man zusätzlich zum Filter einen InitialFilename vorschlagen, welcher dann auch als Filter für die Auswahlliste verwendet wird.
Weiterer Nachteil von GetSaveAsFileName ist, dass man maximal eine Datei auswählen kann, aber nicht mehrere (also kein Multiselect).
also probiere mal

Application.GetSaveAsFilename("Test*", "csv-Dateien (*.csv),*.csv)")
Gruß Daniel
Anzeige
AW: Filter nach "String".* in .GetOpenFilena
17.10.2022 21:24:53
Uduuh
Hallo,
ich bevorzuge das FileDialog-Objekt.
z.B. für Dateien die mit 9 anfangen:

Sub aaa()
Dim f
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.InitialFileName = "c:\test\9*.xlsx"
If .Show Then
f = .SelectedItems(1)
End If
End With
If f  "" Then
'mach was
End If
End Sub
Gruß aus'm Pott
Udo
AW: Filter nach "String".* in .GetOpenFilena
17.10.2022 22:30:38
Ben.Blake
Was es nicht alles gibt ;)
Super, Danke!
AW: Filter nach "String".* in .GetOpenFilena
19.10.2022 16:50:05
Ben.Blake
Ich hab es gerade noch getestet und es funktioniert - Danke!
AW: Filter nach "String".* in .GetOpenFilena
18.10.2022 11:07:48
snb
Noch einfacher:

Sub M_snb()
With Application.FileDialog(1)
.InitialFileName = "G:\OF\*Seriennummer*.xlsx"
If .Show Then .Execute
End With
End Sub

Anzeige
AW: Filter nach "String".* in .GetOpenFilena
18.10.2022 14:16:52
Ben.Blake
Das ist ja noch schöner! ;)
Danke!

132 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige