Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Application.FileDialog-weitere Filtermöglichkeiten

Forumthread: Application.FileDialog-weitere Filtermöglichkeiten

Application.FileDialog-weitere Filtermöglichkeiten
06.05.2017 19:25:38
Christoph
Hallo
In einem Ordner habe ich mehrere .csv-Dateien mit leider kryptischen und langen Dateinamen, die aus einer anderen Anwendung stammen und die ich in eine Excel-Datei einlesen sollte. Im Netz habe ich einen Code für den Öffnen-Dialog gefunden, mit dem einige "Filterungen" eingestellt werden können.
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.Filters.Add "CSV-Dateien", "*.csv", 1
.InitialFileName = pfad & "\Z*"
.InitialView = msoFileDialogViewDetails
If .Show Then
vntReturn = .SelectedItems(1)
Else
Exit Sub
End If
End With
Die Dateinamen sind aber leider so aufgebaut:
K73AC304428 0000000054 0000000038 2016-12-01 00-00-00 ANALYSIS02.csv
K73AC304428 0000000054 0000000038 2016-12-01 00-00-00 ANALYSIS03.csv
K73AC304428 0000000054 0000000038 2016-12-01 00-00-00 ANALYSIS05.csv
K73AC304428 0000000061 0000000038 2016-12-02 00-00-00 ANALYSIS02.csv
K73AC304428 0000000066 0000000038 2016-12-04 00-00-00 ANALYSIS02.csv
usw. und unterscheiden sich erst am Namensende.
Ich möchte, das nur die Dateien, die auf" ANALYSIS02.csv" enden, im ÖffnenDialog auswählbar sind bzw. angezeigt werden.
Wie muss die Zeile '.InitialFileName = pfad & "\Z*"' abgeändert werden, damit dies auch funktioniert. Mit meinen VBA Kenntnissen schaffe ich es leider nicht.
Vielen Dank für eure Hilfe.
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Application.FileDialog-weitere Filtermöglichkeiten
06.05.2017 19:35:40
Sepp
Hallo Christoph,
With Application.FileDialog(msoFileDialogOpen)
  .AllowMultiSelect = False
  .Filters.Clear
  .Filters.Add "CSV-Dateien", "*.csv", 1
  .InitialFileName = Pfad & "\*ANALYSIS02*"
  .InitialView = msoFileDialogViewDetails
  If .Show Then
    vntReturn = .SelectedItems(1)
  Else
    Exit Sub
  End If
End With

Gruß Sepp

Anzeige
AW: Application.FileDialog-weitere Filtermöglichkeiten
06.05.2017 20:47:17
Christoph
Hallo und vielen Dank, funktioniert ja bestens.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Anwendung von Application.FileDialog mit erweiterten Filtermöglichkeiten in VBA


Schritt-für-Schritt-Anleitung

Um die Application.FileDialog in Excel VBA mit spezifischen Filtern zu nutzen, befolge diese Schritte:

  1. Öffne den VBA-Editor in Excel (Alt + F11).
  2. Füge ein neues Modul hinzu:
    • Rechtsklick auf "VBAProject" > "Einfügen" > "Modul".
  3. Gib den folgenden Code ein:

    Sub OpenFileDialog()
       Dim vntReturn As Variant
       Dim Pfad As String
       Pfad = "C:\Dein\Verzeichnis\"
    
       With Application.FileDialog(msoFileDialogOpen)
           .AllowMultiSelect = False
           .Filters.Clear
           .Filters.Add "CSV-Dateien", "*.csv", 1
           .InitialFileName = Pfad & "*ANALYSIS02*"
           .InitialView = msoFileDialogViewDetails
    
           If .Show Then
               vntReturn = .SelectedItems(1)
           Else
               Exit Sub
           End If
       End With
    End Sub
  4. Passe den Pfad an, wo sich deine CSV-Dateien befinden.
  5. Führe das Makro aus, um den Datei-Dialog mit den gewünschten Filtermöglichkeiten zu öffnen.

Häufige Fehler und Lösungen

  • Fehler: "Datei nicht gefunden"
    Lösung: Überprüfe den angegebenen Pfad in .InitialFileName. Stelle sicher, dass der Pfad korrekt ist und die Dateien tatsächlich vorhanden sind.

  • Fehler: Keine Dateien angezeigt
    Lösung: Achte darauf, dass die Filter richtig gesetzt sind. Die Zeile .Filters.Add "CSV-Dateien", "*.csv", 1 sorgt dafür, dass nur CSV-Dateien angezeigt werden.

  • Problem mit Wildcards
    Wenn die Wildcards nicht funktionieren, stelle sicher, dass du das richtige Format verwendest. "*ANALYSIS02*" sorgt dafür, dass nur Dateien angezeigt werden, die diesen Text enthalten.


Alternative Methoden

Falls du keine VBA-Kenntnisse hast, kannst du die Filtermöglichkeiten auch über das Excel-Menü setzen:

  1. Gehe zu "Daten" > "Abrufen und Transformieren" > "Aus Datei".
  2. Wähle die Option "Aus Text/CSV".
  3. Wähle die gewünschte Datei aus und setze die Filter im Dialog.

Diese Methode ist benutzerfreundlicher, bietet jedoch weniger Flexibilität als die VBA-Lösung.


Praktische Beispiele

Hier sind einige Beispiele für die Verwendung von Application.FileDialog mit verschiedenen Filtermöglichkeiten:

  1. Filter für Excel-Dateien:

    .Filters.Add "Excel-Dateien", "*.xls; *.xlsx", 1
  2. Filter für Textdateien:

    .Filters.Add "Text-Dateien", "*.txt", 2
  3. Filter für mehrere Dateitypen:

    .Filters.Add "Alle Dateien", "*.*", 3

Diese Beispiele zeigen, wie flexibel die Filter in der FileDialog-Anwendung sein können.


Tipps für Profis

  • Nutze die Methode .Filters.Add geschickt, um mehrere Dateitypen in einem Dialog zu kombinieren. So kannst du die Benutzerfreundlichkeit erhöhen.
  • Teste deine VBA-Skripte immer in einer Kopie deiner Datei, um unerwartete Fehler zu vermeiden.
  • Verwende das .InitialFileName-Attribut, um den Dialog direkt auf das gewünschte Verzeichnis zu setzen.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Dateitypen in einem Filter kombinieren?
Du kannst mehrere Filter hinzufügen, indem du .Filters.Add mehrmals aufrufst, z.B. für CSV und TXT:

.Filters.Add "CSV-Dateien", "*.csv", 1
.Filters.Add "Text-Dateien", "*.txt", 2

2. Kann ich den Dialog so einstellen, dass mehrere Dateien ausgewählt werden können?
Ja, setze .AllowMultiSelect = True, um die Mehrfachauswahl zu ermöglichen.

3. Funktioniert dieser Code in allen Excel-Versionen?
Die Application.FileDialog-Methode ist in den meisten modernen Excel-Versionen verfügbar, einschließlich Excel 2010 und neuer.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige