Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

FileFilter

Forumthread: FileFilter

FileFilter
22.02.2003 19:16:20
Hans
Hallo Leute - ich brauch unbedingt eure Hilfe!

Mein Problem: ich brauche eine Makro welches mir den speichern unter Dialog mit einem bestimmten Verzeichnis öffnet, und mir bereits einen Speichernamen aus einer Zelle vorgibt. Ich hatte es auch erst geschafft, bis mir aufgefallen ist, daß er das ganze gar nicht als xls-Datei speichert. Da muß man wohl erst irgend nen File-Filter vorgeben.

Soweit bi ich bisher:

Sub Speicherneu()
Name = Application.GetSaveAsFilename("d:\FormFK\" & ([L4]), fileFilter:="Text Files (*.xls)")
If Name = False Then Exit Sub
ActiveWorkbook.SaveAs Name
End Sub

Ich hoffe auf eure Atworten

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Re: FileFilter
22.02.2003 20:18:29
Ralf Sögel

Da du offensichtlich keine Hilfe installiert hast, hier ein Auszug:

Zeigt das Standard-Dialogfeld Speichern unter und liest einen vom Benutzer eingegebenen Dateinamen ein, ohne tatsächlich eine Datei zu speichern.

Syntax

Ausdruck.GetSaveAsFilename(InitialFilename, FileFilter, FilterIndex, Title, ButtonText)

Ausdruck Erforderlich. Ein Ausdruck, der das Objekt Application zurückgibt.

InitialFilename Variant optional. Legt den vorgeschlagenen Dateinamen fest. Ist dieses Argument nicht angegeben, verwendet Microsoft Excel den Namen der aktiven Arbeitsmappe.

FileFilter Variant optional. Eine Zeichenfolge, die die Dateifilterkriterien festlegt.

In Windows besteht diese Zeichenfolge aus Paaren von Filternamen, denen die Filterdefinition mit MS-DOS-Stellvertreterzeichen folgt. Dabei werden alle Teile und Paare durch Kommas getrennt. Die einzelnen Paare werden im Dropdown-Listenfeld Dateityp aufgeführt. Die folgende Zeichenfolge legt die zwei Dateifilter für Textdateien und Add-In-Dateien fest:

"Textdateien (*.txt),*.txt,Add-In-Dateien (*.xla),*.xla".

Sollen mehrere MS-DOS-Stellvertreterzeichen für einen Filtertyp verwendet werden, trennen Sie die Stellvertreterausdrücke durch Semikolons, wie im folgenden Beispiel dargestellt.

"visual Basic-Dateien (*.bas; *.txt),*.bas;*.txt".

Wird dieses Argument in Windows nicht angegeben, wird standardmäßig die Zeichenfolge "Alle Dateien (*.*),*.*
" verwendet.

Auf dem Macintosh ist diese Zeichenfolge eine durch Kommas getrennte Liste von Dateityp-Codes ("TEXT,XLA5,XLS4"). Leerzeichen werden berücksichtigt und dürfen weder vor noch hinter den Kommas eingefügt werden, wenn sie kein Teil des Dateityp-Codes sind. Wird dieses Argument nicht angegeben, werden standardmäßig alle Dateien verwendet.

FilterIndex Variant optional. Nur Microsoft Windows (wird auf dem Macintosh nicht berücksichtigt). Gibt die Indexnummern der Standard-Dateifilterkriterien an. Es sind Werte zwischen 1 und der Anzahl der Filter in FileFilter möglich. Ist dieses Argument nicht angegeben oder größer als die Anzahl der angegebenen Filter, wird der erste Dateifilter verwendet.

Title Variant optional. Legt den Dialogfeldtitel fest. Ist dieses Argument nicht angegeben, wird der Standardtitel verwendet.

ButtonText Variant optional. Nur Macintosh (wird unter Windows nicht berücksichtigt). Legt den Text zum Speichern der Datei im Dialogfeld fest. Ist dieses Argument nicht angegeben, wird der Text "Speichern" verwendet.

Anmerkungen

Diese Methode gibt den vom Benutzer markierten oder eingegebenen Dateinamen zurück. Der zurückgegebene Name kann eine Pfadangabe enthalten. Wenn der Benutzer das Dialogfeld mit Abbrechen beendet, wird False zurückgegeben.

Diese Methode wechselt gegebenenfalls das aktuelle Laufwerk oder den aktuellen Ordner.
Gruß Ralf

Anzeige
Re: FileFilter
22.02.2003 20:29:21
andre

hallo hans,
so:
...fileFilter:="Microsoft Excel-Arbeitsmappe (*.xls), *.xls")
gruss andre

;
Anzeige

Infobox / Tutorial

FileFilter in Excel VBA richtig nutzen


Schritt-für-Schritt-Anleitung

Um einen "Speichern unter"-Dialog in Excel VBA zu erstellen, der ein bestimmtes Verzeichnis öffnet und einen Dateinamen aus einer Zelle vorschlägt, kannst du folgendes Makro verwenden:

Sub Speicherneu()
    Dim Name As Variant
    Name = Application.GetSaveAsFilename("d:\FormFK\" & [L4], fileFilter:="Microsoft Excel-Arbeitsmappe (*.xls), *.xls")
    If Name = False Then Exit Sub
    ActiveWorkbook.SaveAs Name
End Sub

In diesem Makro wird der Dateifilter fileFilter:= für Excel-Arbeitsmappen gesetzt, sodass nur .xls-Dateien angezeigt werden. Achte darauf, dass der Pfad und die Zelle [L4] korrekt angepasst sind.


Häufige Fehler und Lösungen

  1. Fehler: Das Dialogfeld öffnet sich nicht

    • Lösung: Stelle sicher, dass das Makro korrekt ausgeführt wird und dass du die richtigen Berechtigungen hast, um auf das Verzeichnis zuzugreifen.
  2. Fehler: Datei wird nicht als .xls gespeichert

    • Lösung: Überprüfe den fileFilter:=-Parameter. Verwende sicher, dass du den korrekten Filter für Excel-Arbeitsmappen gesetzt hast, wie im obigen Beispiel gezeigt.
  3. Fehler: Name wird nicht aus Zelle übernommen

    • Lösung: Stelle sicher, dass die Zelle [L4] die gewünschte Zeichenfolge enthält. Überprüfe auch, ob die Zelle korrekt referenziert wird.

Alternative Methoden

Wenn du den Dialog auch ohne VBA aufrufen möchtest, kannst du das Dialogfeld "Speichern unter" über das Menü "Datei" in Excel öffnen. Diese Methode ist jedoch weniger automatisiert und erfordert manuelle Eingaben.


Praktische Beispiele

Hier sind einige praktische Beispiele für den filefilter in VBA:

  1. Speichern als Textdatei

    Name = Application.GetSaveAsFilename("d:\FormFK\" & [L4], fileFilter:="Textdateien (*.txt), *.txt")
  2. Speichern als Excel-Arbeitsmappe und Add-In

    Name = Application.GetSaveAsFilename("d:\FormFK\" & [L4], fileFilter:="Excel-Arbeitsmappen (*.xlsx), *.xlsx, Add-In-Dateien (*.xlam), *.xlam")

Diese Beispiele zeigen, wie flexibel der filefilter in VBA ist und wie du verschiedene Dateiformate anbieten kannst.


Tipps für Profis

  • Verwende mehrere Filter: Du kannst mehrere Dateifilter kombinieren, um den Benutzern mehr Auswahl zu bieten. Achte darauf, die Filter durch Kommas zu trennen.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um sicherzustellen, dass das Makro auch bei unerwarteten Eingaben oder Abbrüchen robust bleibt.

  • Benutzerdefinierte Titel: Setze einen benutzerdefinierten Titel für das Dialogfeld, um die Benutzerführung zu verbessern:

    Name = Application.GetSaveAsFilename("d:\FormFK\" & [L4], fileFilter:="Microsoft Excel-Arbeitsmappe (*.xls), *.xls", Title:="Speichern unter")

FAQ: Häufige Fragen

1. Was ist der Zweck des fileFilter in VBA?
Der fileFilter ermöglicht es, spezifische Dateitypen im Dialogfeld "Speichern unter" anzuzeigen, sodass der Benutzer nur die relevanten Formate auswählen kann.

2. Kann ich auch eigene Dateitypen hinzufügen?
Ja, du kannst eigene Dateitypen definieren, indem du die Filterstring entsprechend anpasst, z.B. "Meine Dateien (*.meine), *.meine".

3. Funktioniert das auch in Excel 365?
Ja, das Beispiel und die Methoden sind in Excel 365 sowie in anderen Versionen von Excel anwendbar. Achte darauf, dass die VBA-Umgebung aktiviert ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige