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

Forumthread: VBA: Dateipfad als String abspeichern

VBA: Dateipfad als String abspeichern
19.04.2021 16:27:02
Philipp
Hallo zusammen,
ich finde leider keine passende Lösung zu meiner Problemstellung und suche deshalb Hilfe.
Folgende Aufgabenstellung:
Ich möchte in Excel eine String mit Dateipfad und Namen erhalten. Bspw. "c/GeneralDocuments/Ordner1/Worddokument.docx".
Dabei möchte ich das Dokument, dessen Name und Pfad im String gespeichert wird, über den Explorer auswählen können.
Mittels VBA soll quasi der Explorer geöffnet werden, und zwar am liebst gleich der "Ordner1".
In diesem Ordner soll es anschließend möglich sein, das passende Dokument auszuwählen.
Der Name und Dateipfad soll dann als String zurück gegeben werden. Die Datei soll dabei nicht geöffnet werden.
Folgender Ansatz: Dabei wird der Explorer den richtigen Ordner öffnen. Nun muss noch die Rückmeldung hinzugefügt werden, welche Datei ausgewählt werden soll.

Sub Dateiname()
Dim Pfad As String
Pfad = "c/GeneralDocuments/Ordner1"
Shell "explorer.exe /e, " & Pfad, vbMaximizedFocus
End Sub
Über eine Hilfestellung würde ich mich freuen.
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA: Dateipfad als String abspeichern
19.04.2021 17:01:21
MRUTOR
Hallo Phillip,
so:

Sub test()
Dim fd As Office.FileDialog
Dim strFileName As String
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.AllowMultiSelect = False
.Title = "Bitte Datei auswaehlen"
.InitialFileName = "C:\Users\torsten.wetzel\"
.Filters.Add "Excel", "*.xlsx"
.Filters.Add "All", "*.*"
If .Show = True Then
strFileName = .SelectedItems(1)
End If
End With
End Sub
In der Variablen strFileName ist der Pfad incl. Datei.
Gruss Tor
Anzeige
AW: VBA: Dateipfad als String abspeichern
19.04.2021 17:03:02
MRUTOR
Sorry noch vergessen zu erwaehnen.
Bei

.InitialFileName = "C:\Users\torsten.wetzel\"
einfach deinen Pfad angeben zu deinem Wunschordner. Man kann aber dann auch noch browsen zu anderen Ordnern
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Dateipfad als String in VBA speichern


Schritt-für-Schritt-Anleitung

Um einen Dateipfad als String in Excel mithilfe von VBA zu speichern, kannst du die folgenden Schritte befolgen:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul:

    • Klicke mit der rechten Maustaste auf "VBAProject (dein Arbeitsbuch)" und wähle Einfügen > Modul.
  3. Füge den Code ein:

    • Kopiere den folgenden Code in das Modul:
    Sub Dateiname()
       Dim fd As Office.FileDialog
       Dim strFileName As String
       Set fd = Application.FileDialog(msoFileDialogFilePicker)
       With fd
           .AllowMultiSelect = False
           .Title = "Bitte Datei auswählen"
           .InitialFileName = "C:\Users\deinBenutzername\Ordner1\"
           .Filters.Add "Alle Dateien", "*.*"
           If .Show = True Then
               strFileName = .SelectedItems(1)
               MsgBox "Der ausgewählte Dateipfad ist: " & strFileName
           End If
       End With
    End Sub
  4. Ändere den InitialFileName:

    • Ersetze C:\Users\deinBenutzername\Ordner1\ mit dem Pfad zu deinem gewünschten Ordner.
  5. Führe das Makro aus:

    • Drücke F5, um das Makro auszuführen. Der Explorer öffnet sich und du kannst eine Datei auswählen.

Häufige Fehler und Lösungen

  • Fehler: "Das Makro kann nicht ausgeführt werden."

    • Stelle sicher, dass Makros in deinen Excel-Einstellungen aktiviert sind.
  • Fehler: "Dateipfad nicht gefunden."

    • Überprüfe, ob der angegebene Pfad korrekt ist und existiert.
  • Problem: Keine Datei ausgewählt.

    • Achte darauf, dass du im Dialogfenster eine Datei auswählst, bevor du auf "Öffnen" klickst.

Alternative Methoden

Eine alternative Methode, um den Dateipfad als String zu erhalten, ist die Verwendung des Shell-Befehls, um den Explorer zu öffnen. Hier ein Beispiel:

Sub OpenExplorer()
    Dim Pfad As String
    Pfad = "C:\Users\deinBenutzername\Ordner1"
    Shell "explorer.exe /e, " & Pfad, vbMaximizedFocus
End Sub

Diese Methode öffnet den angegebenen Ordner, erlaubt jedoch keine Auswahl einer Datei.


Praktische Beispiele

Hier sind einige praktische Beispiele zur Verwendung des Dateipfads:

  • Um den Dateipfad für eine Word-Datei zu speichern:
Sub WordDateipfad()
    Dim strFileName As String
    Dim fd As Office.FileDialog
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    With fd
        .AllowMultiSelect = False
        .Title = "Bitte Word-Dokument auswählen"
        .Filters.Add "Word-Dokumente", "*.docx"
        If .Show = True Then
            strFileName = .SelectedItems(1)
            MsgBox "Der ausgewählte Word-Dateipfad ist: " & strFileName
        End If
    End With
End Sub
  • Um den Dateipfad in einer Zelle anzuzeigen:
Sub DateipfadInZelle()
    Dim strFileName As String
    Dim fd As Office.FileDialog
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    With fd
        .AllowMultiSelect = False
        .Title = "Bitte Datei auswählen"
        If .Show = True Then
            strFileName = .SelectedItems(1)
            ThisWorkbook.Sheets("Tabelle1").Range("A1").Value = strFileName
        End If
    End With
End Sub

Tipps für Profis

  • Verwende die Dim-Anweisung, um Variablen klar zu definieren, z.B. Dim name As String, um die Lesbarkeit deines Codes zu erhöhen.
  • Teste deinen Code in einer sicheren Umgebung, bevor du ihn in einem produktiven Arbeitsbuch verwendest.
  • Halte deine VBA-Projekte gut kommentiert, um die Wartung zu erleichtern.

FAQ: Häufige Fragen

1. Wie kann ich den Dateipfad ohne Benutzerinteraktion speichern?
Du kannst den Dateipfad direkt in den Code schreiben, anstatt den FileDialog zu verwenden. Zum Beispiel:

Dim strFileName As String
strFileName = "C:\Users\deinBenutzername\Ordner1\deineDatei.docx"

2. Funktioniert dieser Code in Excel 2016 und 365?
Ja, der Code ist mit Excel 2016 und Excel 365 kompatibel. Stelle sicher, dass die erforderlichen Bibliotheken aktiviert sind.

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