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

Datei öffnen Application.GetOpenFileName

Forumthread: Datei öffnen Application.GetOpenFileName

Datei öffnen Application.GetOpenFileName
15.11.2005 03:26:04
Klaus
Hallo Profis!
Vielleicht ne blöde Frage für Euch, für mich aber im Moment nicht lösbar - und es kommen sicher noch ein paar Fragen dazu ....
Ich habe folgendes Makro:

Sub Test()
Workbooks.OpenText Filename:= _
"A:\20050728\EVN_RKN1012791441_004976211515_072005.txt", Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), _
Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 2), Array(7, 2), Array(8, 1), Array(9, 1), _
Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1)), _
TrailingMinusNumbers:=True
End Sub

(aufgezeichneter Code beim öffnen einer CSV Datei!)
und möchte nun, dass wenn das Makro aufgerufen wird nicht eine bestimmte Datei geöffnet wird, sondern das Dialogfenster zur Dateiöffnung. Das ist ja der Code "Application.GetOpenFileName"
Wenn ich den Code alleine eingebe dann funktioniert das auch, wenn ich das aber zusammen mit den o.g. Code eingebe, dann erhalte ich einen Fehler!
Könnte mir bitte jemand den Code so abändern das er funktioniert!?!?!?!?
Vielen lieben Dank!
Grüße
Klaus
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Datei öffnen Application.GetOpenFileName
15.11.2005 06:06:17
Luschi
Hallo Klaus,
in der Excel-Hilfe steht Folgendes:
Der GetOpenFileName-Befehl "Zeigt das Standarddialogfeld Öffnen an und bekommt einen Dateinamen vom Benutzer, ohne jedoch irgendwelche Dateien zu öffnen."
Mach es so:
Dim xFilter As String, xDatei As String
Sub Test()
ChDrive "A:\"
ChDir "A:\20050728\"
'nur Dateien mit Dateityp ".txt" werden im Dialog angezeigt, _
auch wenn sich noch anderenDateien im Pfad befinden!
xFilter = "Textdateien (*.txt), *.txt"
xDatei = Application.GetOpenFileName(xFilter, 1, "Datei Öffnen", "Öffnen", False)
'wenn Auswahldialog abgebrochen
If InStr(1, "*falsch*false*", LCase(xDatei), vbTextCompare) > 0 Then
MsgBox "Datei-Öffnen-Dialog wurde abgebrochen!", 16
Exit Sub
End If
'jetzt ausgewählte Datei öffnen
Workbooks.OpenText Filename:= _
xDatei, Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), _
Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 2), Array(7, 2), Array(8, 1), Array(9, 1), _
Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1)), _
TrailingMinusNumbers:=True
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Datei öffnen Application.GetOpenFileName
17.11.2005 15:49:12
Klaus
Hallo Luschi!
Besten Dank für Deine rasche Antwort, auch wenn es jetzt ziemlich lange gedauert hat mich bei Dir zu bedanken!
Ich werde mir das mal gerauer anschauen und hoffe dabei auch was zu lernen!
Nochmasl Vielen Dank für Deine Hilfe!
Klaus
AW: Datei öffnen Application.GetOpenFileName
17.11.2005 16:15:31
Klaus
Nochmals Hallo an alle!
Dank Luschi funktioniert das prächtig!
Hab aber zu der Formel noch ne Frage -
Mit der o.g. Formel kann ich nur eine Datei öffnen. Ist es möglich auch mehrere Dateien auf einmal zu öffnen, natürlich dann in dem jeweiligen eigenem "Blatt"?
Für Euere Hilfe nochmals besten Dank!
Klaus
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
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

Dateien mit Application.GetOpenFileName in Excel VBA öffnen


Schritt-für-Schritt-Anleitung

Um eine Datei mit dem Dialogfenster in Excel VBA zu öffnen, kannst du die Application.GetOpenFileName Methode verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung, wie du dies umsetzen kannst:

  1. Neues Makro erstellen: Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Ein neues Modul hinzufügen: Klicke auf Einfügen > Modul.

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

    Sub Test()
       Dim xFilter As String, xDatei As String
       ChDrive "A:\"
       ChDir "A:\20050728\"
       xFilter = "Textdateien (*.txt), *.txt"
       xDatei = Application.GetOpenFileName(xFilter, 1, "Datei Öffnen", "Öffnen", False)
    
       If InStr(1, "*falsch*false*", LCase(xDatei), vbTextCompare) > 0 Then
           MsgBox "Datei-Öffnen-Dialog wurde abgebrochen!", 16
           Exit Sub
       End If
    
       Workbooks.OpenText Filename:= _
       xDatei, Origin:=xlWindows, _
       StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
       ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
       , Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), _
       Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 2), Array(7, 2), Array(8, 1), Array(9, 1), _
       Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1)), _
       TrailingMinusNumbers:=True
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor und führe das Makro über Entwicklertools > Makros aus.


Häufige Fehler und Lösungen

  • Fehler beim Abbrechen des Dialogs: Wenn du den Dialog abbrichst, erhältst du möglicherweise einen Fehler. Stelle sicher, dass du die Abbruchbedingung im Code korrekt implementiert hast, wie im obigen Beispiel gezeigt.

  • Dateityp wird nicht angezeigt: Wenn die Datei nicht im Dialog angezeigt wird, überprüfe den Filter. Stelle sicher, dass der Filter korrekt gesetzt ist (xFilter = "Textdateien (*.txt), *.txt").


Alternative Methoden

Wenn du mehrere Dateien auf einmal öffnen möchtest, kannst du die Application.GetOpenFileName Methode mit einer Schleife kombinieren. Hier ist ein Beispiel:

Sub MehrereDateienÖffnen()
    Dim xFilter As String, xDatei As Variant
    xFilter = "Textdateien (*.txt), *.txt"
    xDatei = Application.GetOpenFileName(xFilter, , "Dateien Öffnen", , True)

    If VarType(xDatei) = vbBoolean Then
        MsgBox "Datei-Öffnen-Dialog wurde abgebrochen!", 16
        Exit Sub
    End If

    Dim i As Integer
    For i = LBound(xDatei) To UBound(xDatei)
        Workbooks.OpenText Filename:= _
        xDatei(i), Origin:=xlWindows, _
        StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
        , Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1))
    Next i
End Sub

Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du die Application.GetOpenFileName Methode in einer praktischen Anwendung nutzen kannst. Angenommen, du hast mehrere CSV-Dateien in einem Ordner:

  1. Erstelle einen neuen Ordner und füge einige CSV-Dateien hinzu.
  2. Verwende das obige Makro MehrereDateienÖffnen, um alle CSV-Dateien in Excel zu laden.

Tipps für Profis

  • Dateifilter anpassen: Du kannst den Dateifilter erweitern, um mehrere Dateitypen anzuzeigen, indem du den Filter wie folgt anpasst:

    xFilter = "Textdateien (*.txt), *.txt, Excel Dateien (*.xlsx), *.xlsx"
  • Fehlermeldungen optimieren: Statt einer einfachen MessageBox kannst du eine benutzerdefinierte Fehlerbehandlung schreiben, um den Nutzern mehr Informationen zu geben.


FAQ: Häufige Fragen

1. Wie öffne ich eine Datei mit Application.GetOpenFileName in Excel VBA?
Du kannst das Makro verwenden, das oben beschrieben wurde. Es zeigt ein Dialogfenster an, in dem du die gewünschte Datei auswählen kannst.

2. Ist es möglich, mehrere Dateien gleichzeitig zu öffnen?
Ja, mit einer kleinen Anpassung des Codes kannst du mehrere Dateien gleichzeitig auswählen und öffnen.

3. Welche Excel-Version benötige ich, um Application.GetOpenFileName zu verwenden?
Diese Methode ist in den meisten modernen Excel-Versionen verfügbar, einschließlich Excel 2010 und später.

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