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

Dateiauswahlfilter mit FileDialog

Forumthread: Dateiauswahlfilter mit FileDialog

Dateiauswahlfilter mit FileDialog
Tobsen
Hey
In unten stehndem Code wird ja ein Fenster zum Öffnen von Dateien aufgerufen. Ich wollte jetzt nur die XML-Dateien anzeigen lassen. Das funktioniert bei mir leider nicht und ich weiß nicht so recht wo der Fehler im Filter ist? Hat jemand einen Tip? Danke im Vorraus
Public Function XMLDateiEinlesen()
Dim oFileDialog As FileDialog
Set oFileDialog = Application.FileDialog(msoFileDialogOpen) '.Filters.Add("XML-Dateien", ("* _
_
_
.xml"))
With oFileDialog
.Title = "Import XML"
.Filters.Add "XML-Dateien (*.xml)", "*.xml"
.ButtonName = "Import"
.Show
For Each vrtSelectedItem In .SelectedItems
XMLDateiEinlesen = vrtSelectedItem
Next
End With
End Function

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Dateiauswahlfilter mit FileDialog
27.10.2010 11:09:19
Case
Hallo,
probiere es mal so:
Option Explicit
Public Function XMLDateiEinlesen() As String
Dim oFileDialog As FileDialog
Set oFileDialog = Application.FileDialog(msoFileDialogFilePicker)
With oFileDialog
.Title = "Import XML"
.Filters.Add "XML-Dateien", "*.xml", 1
.ButtonName = "Import"
If .Show = -1 Then XMLDateiEinlesen = .SelectedItems(1)
End With
End Function
Servus
Case

Anzeige
AW: Dateiauswahlfilter mit FileDialog
27.10.2010 11:26:00
Tobsen
Danke das funktioniert kannste mir mal den Unterschied erklären? Würde das gerne nachvollziehen. Was besagt die 1 im Filter?
AW: Dateiauswahlfilter mit FileDialog
27.10.2010 11:37:29
Case
Hallo,
der "FileDialog" ist in der Hilfe ausreichend gut erklärt. :-)
Add a filter that includes GIF and JPEG images and make it the first item in the list.
.Filters.Add "Images", "*.gif; *.jpg; *.jpeg", 1

Servus
Case

Anzeige
AW: Dateiauswahlfilter mit FileDialog
27.10.2010 11:44:13
Tobsen
Ach klar das hab ich gelesen aber völlig falsch verstanden... Danke
AW: Dateiauswahlfilter mit FileDialog
27.10.2010 14:59:32
Tobsen
Nachdem ein Problem gelöst wurde kommt das nächste... . Wenn ich im Fenster keine Datei zum öfnnen auswähle und das Fenster schließe bzw. auf Abbrechen klicke dann erhalte ich ne Fehlermeldung, da sich ja kein Verzeichnis in XMLDateiEinlesen befindet und somit der weitere Code der DateiEinlesen verwendet nicht ausgeführt werden kann.
Dies habe ich mit dem hervorgehobenen Code gelöst... Funktioniert aber nur unter Excel07 bei 03 leider nicht.
Weiß jemand nen Rat
Public Function XMLDateiEinlesen() As String
Dim oFileDialog As FileDialog
Set oFileDialog = Application.FileDialog(msoFileDialogFilePicker)
With oFileDialog
.Title = "Import XML"
.Filters.Add "XML-Dateien", "*.xml", 1
.ButtonName = "Import"
If .Show = -1 Then XMLDateiEinlesen = .SelectedItems(1)
If XMLDateieneinlesen = "" Then
Worksheets("General").Activate
End
End If
End With
End Function

Anzeige
AW: Dateiauswahlfilter mit FileDialog
28.10.2010 07:06:14
Case
Hallo,
arbeite mit "Option Explicit" - dann passiert sowas nicht. :-)
Deine Zeile:
If XMLDateieneinlesen = "" Then
Richtig ist aber:
If XMLDateiEinlesen = "" Then
Schau auch mal hier:
http://www.online-excel.de/excel/singsel_vba.php?f=4
Servus
Case

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Dateiauswahlfilter mit FileDialog in Excel VBA


Schritt-für-Schritt-Anleitung

Um einen Dateiauswahlfilter in Excel VBA zu implementieren, kannst du den folgenden Code verwenden. Dieser öffnet ein Dialogfeld, in dem nur XML-Dateien angezeigt werden:

Public Function XMLDateiEinlesen() As String
    Dim oFileDialog As FileDialog
    Set oFileDialog = Application.FileDialog(msoFileDialogFilePicker)

    With oFileDialog
        .Title = "Import XML"
        .Filters.Add "XML-Dateien (*.xml)", "*.xml", 1
        .ButtonName = "Import"

        If .Show = -1 Then
            XMLDateiEinlesen = .SelectedItems(1)
        End If
    End With
End Function

In diesem Code wird die Methode application.filedialog(msoFileDialogFilePicker) verwendet, um das Dialogfeld für die Dateiauswahl zu öffnen. Der Filter wird mit .Filters.Add gesetzt, sodass nur XML-Dateien angezeigt werden.


Häufige Fehler und Lösungen

Ein häufiger Fehler beim Einsatz von FileDialog ist, dass das Dialogfeld nicht korrekt konfiguriert ist. Hier sind einige häufige Probleme und deren Lösungen:

  1. Filter funktioniert nicht: Stelle sicher, dass du den Filter richtig hinzufügst. Der Code sollte so aussehen:

    .Filters.Add "XML-Dateien (*.xml)", "*.xml", 1
  2. Fehlermeldung beim Schließen des Dialogfelds: Wenn du das Dialogfeld schließt, ohne eine Datei auszuwählen, kann das zu einer Fehlermeldung führen. Um dies zu vermeiden, prüfe, ob eine Datei ausgewählt wurde:

    If .Show = -1 Then
       XMLDateiEinlesen = .SelectedItems(1)
    Else
       XMLDateiEinlesen = ""
    End If

Alternative Methoden

Falls du eine andere Art der Dateiauswahl benötigst, kannst du msoFileDialogFolderPicker verwenden, um einen Ordner auszuwählen:

Public Function OrdnerAuswählen() As String
    Dim oFolderDialog As FileDialog
    Set oFolderDialog = Application.FileDialog(msoFileDialogFolderPicker)

    With oFolderDialog
        .Title = "Wähle einen Ordner"
        If .Show = -1 Then
            OrdnerAuswählen = .SelectedItems(1)
        End If
    End With
End Function

Diese Methode ermöglicht es dir, einen Ordner auszuwählen, anstatt eine Datei zu öffnen.


Praktische Beispiele

Hier sind einige praktische Beispiele zur Verwendung des FileDialog in Excel VBA:

  1. Öffnen einer XML-Datei:

    Sub DateiÖffnen()
       Dim datei As String
       datei = XMLDateiEinlesen()
       If datei <> "" Then
           ' Hier kannst du den Code zum Einlesen der XML-Datei hinzufügen
       End If
    End Sub
  2. Ordner auswählen und Dateien auflisten:

    Sub OrdnerDateienAuflisten()
       Dim ordner As String
       ordner = OrdnerAuswählen()
       If ordner <> "" Then
           ' Hier kannst du den Code zum Auflisten der Dateien im gewählten Ordner hinzufügen
       End If
    End Sub

Tipps für Profis

  • Nutze Option Explicit am Anfang deiner Module, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.

  • Verwende die Filters-Eigenschaft strategisch, um mehrere Dateiformate in einem Dialogfeld anzuzeigen:

    .Filters.Add "XML-Dateien", "*.xml", 1
    .Filters.Add "Alle Dateien", "*.*", 2

FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen msoFileDialogOpen und msoFileDialogFilePicker?
msoFileDialogOpen wird verwendet, um ein Dialogfeld zum Öffnen von Dateien anzuzeigen, während msoFileDialogFilePicker speziell zum Auswählen von Dateien dient.

2. Wie setze ich mehrere Filter für das FileDialog?
Du kannst mehrere Filter hinzufügen, indem du die Filters.Add Methode mehrmals aufrufst. Achte darauf, die Reihenfolge zu beachten, da sie die Auswahl im Dialogfeld beeinflusst.

3. Was passiert, wenn ich keinen Filter hinzufüge?
Wenn du keinen Filter hinzufügst, zeigt das Dialogfeld alle Dateitypen an, was die Benutzererfahrung beeinträchtigen kann. Es ist ratsam, einen spezifischen Filter zu setzen.

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