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 + Pfad vorgeben !

Datei öffnen Dialog + Pfad vorgeben !
10.03.2007 21:24:58
Peter
Hallo zusammen,
ich muss in Excel über einen CommandButton eine Grafik einfügen. Beim Dialog "Öffnen" soll allerdings der aktuelle Pfad der Exceldatei als Ordner-Voreinstellung dienen, also Exceldatei und Grafik sind im gleichen Verzeichnis.
Ich habe es bereits nach folgender Methode versucht.
ChDir ActiveWorkbook.Path
Grafik_öffnen = Application.GetOpenFilename("Bilder (*.Jpg; *.Bmp; *.Gif), *.jpg")

Das funktioniert aber garnicht. Standardmäßig wird zuerst in "Eigene Dateien" gesucht. Erst wenn man dann einmal eine Grafik aus einem anderen Ordner geöffnet hat, dann wird dieser standardmäßig im Dialog angezeigt.
Meine Frage: Wie kann ich eine Datei über einen vordefinierten Dialog oder Funktion öffnen und gleichzeitig dafür standardmäßig einen Ordner vorgeben.
Anmerkung: Dem Benutzer muss wie bei "...Application.GetOpenFilename" die Möglichkeit gegeben sein, dass er den Ordner über den Dialog ändern kann.
Kompliziert ausgedrückt. Ich hoffe, ihr versteht's. Danke schon mal für eure Infos.
Gruß Peter
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Datei öffnen Dialog + Pfad vorgeben !
ransi
HAllo Peter
Schau dir mal application.filedialog() an:
Option Explicit

Sub irgendwas()
Dim dat
Set dat = Application.FileDialog(msoFileDialogFilePicker)
With dat
    .Title = "Netzwerk...."
    .InitialFileName = ThisWorkbook.Path 'oder was auch immer
    .Filters.Add "Bilder ", "*.gif; *.jpg; *.jpeg", 1
    If .Show = -1 Then MsgBox .SelectedItems(1)
End With
End Sub



Ist wie dafür gemacht..
;-)
ransi
Anzeige
AW: Datei öffnen Dialog + Pfad vorgeben !
10.03.2007 21:35:17
EtoPHG
Hallo Peter,
So wie Du das gemacht hast, müsste es eigentlich funktionieren.
Mit 2 Ausnahmen, wenn die Datei noch nicht gesichert ist oder, wenn die Exceldatei auch noch auf einem anderen Drive liegt.
Dann mit:

ChDrive Left(ActiveWorkbook.Path,1)
ChDir ActiveWorkbook.Path

Gruss Hansueli
Anzeige
Einen schönen Abend noch !
10.03.2007 21:46:03
Peter
Hoi Hoi,
zur Info: die Datei wurde zuvor auf Laufwerk D gespeichert.
@Hansueli u. @Ramses : das kann demnach gut sein, dass es am fehlenden "ChDrive Left(ActiveWorkbook.Path,1)" lag.
@ransi: der Dialog sieht mal vernünftig aus. Ich hatte den auch schon probiern wollen. Leider fehlten mir aber Code-Fragemente, weil ich den unvollständig kopiert hatte.
@Alle: Bin guter Dinge, dass ich das nun dank eurer Hilfe hinbekomme. Einen schönen Abend noch
Grüße, Peter
Anzeige
AW: Datei öffnen Dialog + Pfad vorgeben !
10.03.2007 21:36:00
Ramses
Hallo
Ist eine Datei noch nicht gespeichert, kannst du mit ChDir ActiveWorkbook.Path nicht wechseln, ... weil "Path" keinen Inhalt hat.
Zudem wechselt EXCEL nicht wenn die Datei auf einem anderen Laufwerk gespeichert ist, als die aktuelle Einstellung.
Vorschlag (bei gespeicherter Datei):
ChDrv left(ActiveWorkbook.Path,1)
ChDir ActiveWorkbook.Path
Gruss Rainer
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
Anzeige

Infobox / Tutorial

Datei öffnen Dialog in Excel VBA mit vordefiniertem Pfad


Schritt-für-Schritt-Anleitung

Um in Excel VBA einen Datei öffnen Dialog mit einem vordefinierten Pfad zu erstellen, kannst du die Application.FileDialog Methode verwenden. Hier ist eine Schritt-für-Schritt-Anleitung, wie du dies umsetzen kannst:

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel, indem du ALT + F11 drückst.

  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (dein Dokument)" > Einfügen > Modul.

  3. Gib folgenden Code ein:

    Sub DateiOeffnenMitPfad()
       Dim dat As FileDialog
       Set dat = Application.FileDialog(msoFileDialogFilePicker)
       With dat
           .Title = "Wähle eine Grafik aus"
           .InitialFileName = ThisWorkbook.Path & "\"
           .Filters.Add "Bilder", "*.jpg; *.bmp; *.gif", 1
           If .Show = -1 Then
               MsgBox "Ausgewählte Datei: " & .SelectedItems(1)
           End If
       End With
    End Sub
  4. Führe das Makro aus: Du kannst dies über das Menü "Ausführen" oder mit F5 tun.

Dieser Code öffnet den Datei-Dialog und setzt den Standardpfad auf das Verzeichnis der aktuellen Excel-Datei.


Häufige Fehler und Lösungen

  • Fehler: Der Dialog öffnet immer im "Eigene Dateien" Ordner.

    • Lösung: Stelle sicher, dass du ChDrive und ChDir verwendest, bevor du den Dialog öffnest, um sicherzustellen, dass das richtige Laufwerk und Verzeichnis aktiv sind.
    ChDrive Left(ThisWorkbook.Path, 1)
    ChDir ThisWorkbook.Path
  • Fehler: Der Pfad ist leer, wenn die Datei noch nicht gespeichert wurde.

    • Lösung: Füge eine Überprüfung hinzu, um sicherzustellen, dass die Datei gespeichert ist.

Alternative Methoden

Wenn du eine andere Methode verwenden möchtest, um einen Datei öffnen Dialog zu erstellen, kannst du die Application.GetOpenFilename Methode ausprobieren. Hier ein Beispiel:

Sub DateiOeffnenMitGetOpenFilename()
    Dim GrafikOeffnen As Variant
    GrafikOeffnen = Application.GetOpenFilename("Bilder (*.jpg; *.bmp; *.gif), *.jpg", , "Wähle eine Grafik aus", , False)
    If GrafikOeffnen <> False Then
        MsgBox "Ausgewählte Datei: " & GrafikOeffnen
    End If
End Sub

Mit dieser Methode wird der Standardpfad jedoch nicht automatisch gesetzt.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du den Datei öffnen Dialog in verschiedenen Szenarien verwenden kannst:

  1. Grafik in Excel einfügen:

    • Verwende den oben genannten Code, um eine Grafik auszuwählen und sie in ein Arbeitsblatt einzufügen.
    Dim Grafik As Object
    Set Grafik = ActiveSheet.Pictures.Insert(GrafikOeffnen)
  2. Zugriff auf eine Bilddatei in Access:

    • Wenn du mit Access arbeitest, kannst du ähnliche Techniken verwenden, um eine Bilddatei aus einem spezifischen Pfad anzuzeigen.

Tipps für Profis

  • Verwende msoFileDialogFolderPicker, um einen Ordner auszuwählen, anstatt eine Datei. Dies kann nützlich sein, wenn du mit mehreren Dateien in einem Ordner arbeiten möchtest.

    Dim OrdnerDialog As FileDialog
    Set OrdnerDialog = Application.FileDialog(msoFileDialogFolderPicker)
  • Füge Fehlerbehandlung hinzu, um sicherzustellen, dass dein Code robust ist und auf unerwartete Situationen reagieren kann.


FAQ: Häufige Fragen

1. Wie kann ich den Dialog so anpassen, dass nur bestimmte Dateitypen angezeigt werden?
Du kannst die Filters.Add Methode verwenden, um nur die gewünschten Dateitypen anzuzeigen. Beispiel: .Filters.Add "Bilder", "*.jpg; *.bmp; *.gif", 1.

2. Warum funktioniert ChDir ActiveWorkbook.Path nicht, wenn die Datei nicht gespeichert ist?
Da der Pfad leer ist, wenn die Datei nicht gespeichert ist, musst du zuerst überprüfen, ob die Datei gespeichert wurde, bevor du ChDir verwendest.

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