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

Application.GetOpenFilename

Forumthread: Application.GetOpenFilename

Application.GetOpenFilename
05.11.2002 08:41:47
Steffen D
Hallo,

Kann man irgendwie diese Zeile so ausbauen, dass der Benutzer nur eine Datei(z.B. Mappe.xls) mit bestimmten Namen auswählen kann? (ohne einer if-Abfrage):

vFile = Application.GetOpenFilename("Microsoft Excel-Dateien (*.xls), *.xls", , "Bitte wählen Sie die Datei Mappe.xls aus")

thx
Gruss
Steffen D

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Application.GetOpenFilename
05.11.2002 08:45:32
Hajo_Zi
Hallo Steffen

sehe ich was falsch???

Wennn nur eine bestimmte Datei geöffnet werden soll, warum öffnets Du Sie nicht gleich??

Gruß Hajo

Re: Application.GetOpenFilename
05.11.2002 08:57:43
Steffen D
Ich tue diese Datei vorher öffnen, und wenn das nicht klappt (Datei verschoben) dann muß der Benutzer die Datei selber auswählen.
hier mein größerer Ausschnitt:

vFile = "C:\Temp\Mappe.xls"
Datei1 = Dir(vFile)
If Datei1 = "" Then
MsgBox ("Prüfen Sie bitte diesen Pfad, od die Datei existiert:" & vbNewLine & vFile)
vFile = Application.GetOpenFilename("Microsoft Excel-Dateien (*.txt), *.xls", , "Bitte wählen Sie die Datei Mappe.xls aus")
End If
Workbooks.Open Filename:=vFile, ReadOnly:=True

Danke schon mal,

weiß du zufällig auch wie das mit dem chdir funktioniert, ich möchte das GetOpenFilename standardmäßig auf den Pfad "//Ntserver" geht, wie geht das?

thx

Steffen

Anzeige
Re: Application.GetOpenFilename
05.11.2002 09:14:16
Hajo_Zi
Hallo Steffen

zum zweiten Teil folgender Ansatz
Dim strVerzeichnis$
strVerzeichnis = "E:\eigene Dateien"
' Überprüfen ob Verzeichnis vorhanden
If Dir(strVerzeichnis, vbDirectory) <> "" Then ChDir strVerzeichnis Else Exit Sub


mit Deinem Dialog hat er doch jetzt die möglich keit eine Datei auzuwählen. Ansonsten suche doch per VBA nach der Datei. Folgender Ansatz

das bedeutet natürlich die Datei gibt es nur einmal.

Gruß Hajo

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Anwendung von Application.GetOpenFilename in VBA


Schritt-für-Schritt-Anleitung

Um die Methode Application.GetOpenFilename in Excel VBA zu verwenden, kannst du die folgenden Schritte befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Rechtsklicke im Projektfenster und wähle Einfügen > Modul.

  3. Schreibe den Code: Füge den folgenden Code in das Modul ein:

    Sub DateiAuswählen()
        Dim vFile As Variant
        vFile = Application.GetOpenFilename("Microsoft Excel-Dateien (*.xls), *.xls", , "Bitte wählen Sie die Datei Mappe.xls aus")
    
        If vFile <> False Then
            Workbooks.Open Filename:=vFile, ReadOnly:=True
        Else
            MsgBox "Keine Datei ausgewählt."
        End If
    End Sub
  4. Führe das Makro aus: Drücke F5, um das Makro auszuführen, und wähle eine Datei aus.


Häufige Fehler und Lösungen

  • Fehler: Keine Datei ausgewählt
    Lösung: Stelle sicher, dass du eine Datei auswählst. Wenn der Benutzer das Dialogfeld schließt, gibt GetOpenFilename den Wert False zurück. Du kannst dies im Code abfangen.

  • Problem mit Dateipfaden
    Wenn du eine bestimmte Datei wie Mappe.xls auswählen möchtest, kannst du dies mit einem Filter in GetOpenFilename tun, aber die Eingabe eines spezifischen Namens im Dialogfeld ist nicht möglich ohne eine separate Überprüfung.


Alternative Methoden

Wenn du eine Datei ohne den Dialog auswählen möchtest, kannst du den Dateipfad direkt im Code angeben:

Dim vFile As String
vFile = "C:\Temp\Mappe.xls"
Workbooks.Open Filename:=vFile, ReadOnly:=True

Für komplexere Anforderungen, wie das Setzen eines Standardverzeichnisses, kannst du ChDir verwenden:

ChDir "E:\eigene Dateien"

Praktische Beispiele

  1. Einfaches Beispiel: Wenn du einen Benutzer eine Datei auswählen lassen möchtest:

    Sub DateiAuswählenBeispiel()
        Dim vFile As Variant
        vFile = Application.GetOpenFilename("Excel-Dateien (*.xls), *.xls", , "Wähle eine Excel-Datei")
        If vFile <> False Then
            MsgBox "Gewählte Datei: " & vFile
        End If
    End Sub
  2. Mit Fehlerüberprüfung: Um sicherzustellen, dass die Datei existiert:

    Sub DateiÜberprüfen()
        Dim vFile As Variant
        vFile = Application.GetOpenFilename("Excel-Dateien (*.xls), *.xls", , "Wähle eine Excel-Datei")
    
        If vFile <> False Then
            If Dir(vFile) <> "" Then
                Workbooks.Open Filename:=vFile, ReadOnly:=True
            Else
                MsgBox "Datei existiert nicht."
            End If
        End If
    End Sub

Tipps für Profis

  • Dateifilter anpassen: Du kannst den Dateifilter in Application.GetOpenFilename anpassen, um verschiedene Dateitypen zu unterstützen, z.B.:

    vFile = Application.GetOpenFilename("Excel-Dateien (*.xls; *.xlsx), *.xls; *.xlsx", , "Wähle eine Excel-Datei")
  • VBA-Anpassungen: Du kannst auch die Funktion GetOpenFilename so anpassen, dass sie nur bestimmte Dateinamen akzeptiert, indem du nach der Auswahl eine zusätzliche Validierung hinzufügst.


FAQ: Häufige Fragen

1. Wie kann ich GetOpenFilename so einstellen, dass es auf ein bestimmtes Verzeichnis zeigt?
Du kannst ChDir verwenden, bevor du GetOpenFilename aufrufst, um das Standardverzeichnis zu ändern.

2. Kann ich mehrere Dateien gleichzeitig auswählen?
Nein, Application.GetOpenFilename erlaubt nur die Auswahl einer Datei gleichzeitig. Du kannst jedoch eine Schleife einfügen, um mehrere Dateien zu öffnen, falls nötig.

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