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

Forumthread: Datei öffnen Dialog - nur Pfad schreiben

Datei öffnen Dialog - nur Pfad schreiben
17.03.2014 11:04:01
Steffen
Grüßt euch - Mahlzeit.
Kann mir jemand sagen, wie ich den "Datei öffnen"-Dialog bzw "Link öffnen"-Dialog verwenden kann, damit mir der komplette Pfad der ausgewählten Datei in eine Zelle/Variable geschrieben wird? Ich muss die Datei nicht öffnen - brauch nur den Pfad.
Mit Application.Dialogs(xlDialogInsertHyperlink).Show kann ich nicht den kompletten Pfad einlesen, vielleicht hängt es auch dort irgendwo? Ich bekomme statt:
C:\User\Pfad\Unterpfad\Datei.jpg nur Unterpfad\Datei.jpg.
Weiß da jemand Rat?
VG Steffen

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Datei öffnen Dialog - nur Pfad schreiben
17.03.2014 11:25:33
Rudi
Hallo,
eine Möglichkeit:
Sub aaaa()
Dim sTmp, sPfad As String
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
If .Show = -1 Then
sTmp = .SelectedItems(1)
sTmp = Split(sTmp, "\")
ReDim Preserve sTmp(UBound(sTmp) - 1)
sPfad = Join(sTmp, "\")
End If
End With
End Sub

Gruß
Rudi

Anzeige
AW: Datei öffnen Dialog - nur Pfad schreiben
17.03.2014 13:24:04
Steffen
Perfekt. Habe nur folgendes Codeschnippsel gebraucht:
Private Sub img_photo_Click()
Dim eintrag As Integer
Dim linkphoto As String
'#Neues Foto einstellen#
'Dialog zum Linkerfassen
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
If .Show = -1 Then
linkphoto = .SelectedItems(1)
End If
End With
'Linkphoto in wert_photo schreiben
ThisWorkbook.Sheets("sys").Range("wert_photo") = linkphoto
'Ansicht aktualisieren /
img_photo.Picture = LoadPicture(linkphoto)
Me.Repaint
End Sub
Herzlichsten Dank!!!
Anzeige
;

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

Datei öffnen Dialog in Excel VBA - Nur Pfad schreiben


Schritt-für-Schritt-Anleitung

Um den "Datei öffnen"-Dialog so zu nutzen, dass nur der Pfad der ausgewählten Datei in eine Zelle oder Variable geschrieben wird, kannst du folgendes VBA-Skript verwenden:

Sub PfadAusDateiOeffnen()
    Dim sTmp As String, sPfad As String
    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        If .Show = -1 Then
            sTmp = .SelectedItems(1)
            sTmp = Split(sTmp, "\")
            ReDim Preserve sTmp(UBound(sTmp) - 1)
            sPfad = Join(sTmp, "\")
            ' Pfad in eine bestimmte Zelle schreiben
            ThisWorkbook.Sheets("DeinBlattname").Range("A1").Value = sPfad
        End If
    End With
End Sub

In diesem Code wird der FileDialog verwendet, um den Pfad der ausgewählten Datei zu ermitteln. Der gesamte Pfad wird in die Zelle A1 des Arbeitsblatts "DeinBlattname" geschrieben.


Häufige Fehler und Lösungen

  • Problem: Der Pfad wird nicht vollständig angezeigt, sondern nur der Dateiname.

    • Lösung: Stelle sicher, dass du die Methode Split korrekt verwendest, um den Pfad vor dem Dateinamen zu extrahieren. Das obige Beispiel zeigt, wie du nur den Pfad ohne den Dateinamen erhältst.
  • Problem: Der Dialog öffnet sich nicht.

    • Lösung: Überprüfe, ob du die richtigen Berechtigungen in Excel hast und dass keine anderen Dialoge oder Fenster geöffnet sind, die den Zugriff auf den FileDialog verhindern.

Alternative Methoden

Eine weitere Methode, um den Pfad einer Datei zu erhalten, ist die Verwendung eines Windows-Skripts (VBS):

Set objDialog = CreateObject("UserAccounts.CommonDialog")
objDialog.Filter = "Alle Dateien (*.*)|*.*"
If objDialog.ShowOpen Then
    WScript.Echo objDialog.FileName
End If

Mit diesem VBS-Skript kannst du ebenfalls einen Datei-Öffnen-Dialog erzeugen und den vollständigen Pfad der ausgewählten Datei erhalten.


Praktische Beispiele

Hier ist ein Beispiel, wie du den Pfad in einer Excel-Anwendung verwenden kannst. Wenn du ein Bild aus dem Dialog auswählen möchtest:

Private Sub img_photo_Click()
    Dim linkphoto As String
    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        If .Show = -1 Then
            linkphoto = .SelectedItems(1)
            ThisWorkbook.Sheets("sys").Range("wert_photo") = linkphoto
            img_photo.Picture = LoadPicture(linkphoto)
            Me.Repaint
        End If
    End With
End Sub

Dieser Code öffnet den FileDialog und speichert den Pfad des ausgewählten Bildes in einer Zelle, während das Bild auch im UserForm angezeigt wird.


Tipps für Profis

  • Verwende .AllowMultiSelect = True, wenn du mehrere Dateien auswählen möchtest und passe den Code entsprechend an.
  • Du kannst auch den InitialFileName-Parameter verwenden, um das Dialogfeld standardmäßig in einem bestimmten Verzeichnis zu öffnen.
  • Achte darauf, die richtigen Datentypen zu verwenden, um Fehler zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich den Pfad direkt in eine Variable speichern?
Du kannst den Wert von linkphoto direkt in eine Variable speichern, wie im Beispiel gezeigt.

2. Ist es möglich, das Dialogfeld so zu ändern, dass nur bestimmte Dateitypen angezeigt werden?
Ja, du kannst das Filter-Attribut des Dialogfeldes verwenden, um nur bestimmte Dateitypen anzuzeigen. Beispiel: .Filters.Add "Bilder", "*.jpg; *.png".

3. Welche Excel-Version benötige ich für diese Methoden?
Die beschriebenen Methoden funktionieren in Excel-Versionen ab 2007 und höher, solange VBA unterstützt wird.

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