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

Forumthread: Dateiname aus Application.GetOpenFilename auslesen

Dateiname aus Application.GetOpenFilename auslesen
17.10.2006 11:42:40
Kasimir
Hallo,
ich benötige noch mal Eure Hilfe. Mit dem Befehl
ReadFile = Application.GetOpenFilename("DAT Files (*.sav),")
öffne ich ein Dialogfenster, in dem ich eine Datei auswähle und diese dann einlese. Nun benötige ich in einer Variablen den Dateinamen der ausgewählten Datei. Ich habe es schon versucht, bekomme es aber nicht hin. Hat da jemand einen passenden Befehl parat?
Danke und Gruß,
Kasimir
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateiname aus Application.GetOpenFilename ausl
17.10.2006 11:47:51
EtoPHG
Hallo Kasimir,
ReadFile = Right(ReadFile, InStrRev(ReadFile, "\") - 1)
Gruss Hansueli
AW: Dateiname aus Application.GetOpenFilename ausl
17.10.2006 11:55:14
Kasimir
Hallo Hansueli,
danke Dir für Deine erneute Antwort, aber leider bringt das nicht das Ergebnis, was ich benötige. Ich habe z.B. ein Datei mit dem Namen "Country1.sav" oder auch "Country21.sav". Wenn ich Deine Lösung nehme, erhalte ich die Dateiendung, aber nicht den kompletten Namen "Country1.sav" oder "Country21.sav". Kannst Du eventuell noch mal scheuen? Wäre supi.
Danke,
Kasimir
Anzeige
AW: Dateiname aus Application.GetOpenFilename ausl
17.10.2006 12:03:01
Erich
Hallo Kasimir,
probiers mal mit
ReadFile = Right(ReadFile, Len(ReadFile) - InStrRev(ReadFile, "\"))
oder
ReadFile = Mid(ReadFile, InStrRev(ReadFile, "\") + 1)
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Dateiname aus Application.GetOpenFilename ausl
17.10.2006 12:09:56
Kasimir
Hallo Erich,
beides funktioniert. Besten Dank dafür.
Noch einen schönen Tag,
Kasimir
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Dateiname aus Application.GetOpenFilename auslesen


Schritt-für-Schritt-Anleitung

Um den Dateinamen aus dem Dialogfenster, das durch Application.GetOpenFilename geöffnet wird, auszulesen, kannst Du folgende Schritte befolgen:

  1. Öffne den VBA-Editor in Excel. Dies kannst Du mit der Tastenkombination ALT + F11 tun.
  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei)", wähle "Einfügen" und dann "Modul".
  3. Füge den folgenden Code ein:
Sub HoleDateiname()
    Dim ReadFile As String
    ReadFile = Application.GetOpenFilename("DAT Files (*.sav),*.sav")

    If ReadFile <> "False" Then
        ' Um den Dateinamen ohne den Pfad zu extrahieren
        ReadFile = Mid(ReadFile, InStrRev(ReadFile, "\") + 1)
        MsgBox "Der ausgewählte Dateiname ist: " & ReadFile
    Else
        MsgBox "Es wurde keine Datei ausgewählt."
    End If
End Sub
  1. Führe das Makro aus: Gehe zurück zu Excel und drücke ALT + F8, wähle HoleDateiname und klicke auf "Ausführen".

Der Code öffnet ein Dialogfenster, in dem Du eine Datei auswählen kannst, und zeigt anschließend den Dateinamen ohne den Pfad in einer Messagebox an.


Häufige Fehler und Lösungen

  • Fehler: Das Dialogfenster öffnet sich nicht oder gibt "False" zurück.

    • Lösung: Stelle sicher, dass Du den richtigen Filter für die Datei angegeben hast. Zum Beispiel: "DAT Files (*.sav),*.sav".
  • Fehler: Der Dateiname wird nicht korrekt angezeigt.

    • Lösung: Überprüfe den Code, insbesondere die Zeile, die den Dateinamen extrahiert. Nutze Mid(ReadFile, InStrRev(ReadFile, "\") + 1) um den Dateinamen ohne den Pfad zu erhalten.

Alternative Methoden

Falls Du eine andere Methode zur Auswahl von Dateien in VBA bevorzugst, kannst Du auch die FileDialog-Methode verwenden. Hier ist ein Beispiel:

Sub DateiDialog()
    Dim fd As FileDialog
    Dim Dateiname As String

    Set fd = Application.FileDialog(msoFileDialogFilePicker)

    With fd
        .Title = "Wähle eine Datei"
        .Filters.Clear
        .Filters.Add "DAT Files", "*.sav"

        If .Show = -1 Then
            Dateiname = .SelectedItems(1)
            MsgBox "Der ausgewählte Dateiname ist: " & Mid(Dateiname, InStrRev(Dateiname, "\") + 1)
        Else
            MsgBox "Es wurde keine Datei ausgewählt."
        End If
    End With
End Sub

Diese Methode bietet eine benutzerfreundlichere Oberfläche und mehr Anpassungsmöglichkeiten.


Praktische Beispiele

Hier sind zwei Beispiele zur Verwendung von Application.GetOpenFilename und FileDialog in einem realen Szenario:

  1. Beispiel 1: Dateiauswahl und Verarbeitung:

    • Du möchtest eine .sav-Datei auswählen und deren Inhalt in eine Excel-Tabelle importieren.
  2. Beispiel 2: Dateinamen für Berichte sammeln:

    • Mit einem Makro kannst Du mehrere .sav-Dateien auswählen und die Dateinamen in einer Liste für spätere Berichte speichern.

Tipps für Profis

  • Nutze die Methode Application.GetOpenFilename für einfache Dialoge und FileDialog für komplexere Anforderungen.
  • Berücksichtige Fehlerbehandlungen, um sicherzustellen, dass Dein Code auch bei unerwarteten Eingaben robust bleibt.
  • Experimentiere mit verschiedenen Dateifiltern, um die Benutzererfahrung zu verbessern.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Dateien gleichzeitig auswählen? Um dies zu ermöglichen, musst Du den AllowMultiSelect-Parameter auf True setzen, wenn Du FileDialog verwendest.

2. Was mache ich, wenn ich den vollständigen Pfad benötige? In diesem Fall kannst Du die Variable ReadFile direkt verwenden, ohne die Funktion zur Extraktion des Dateinamens anzuwenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige