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

Pfad aus Explorerfenster lesen

Forumthread: Pfad aus Explorerfenster lesen

Pfad aus Explorerfenster lesen
09.02.2017 11:18:27
Barbara
hallo
bin auf der Suche nach einer Möglichkeit, den User einen Ordner auswählen zu lassen, und zwar durch Anklicken eines bereits offenen Explorer-Fensters.
Ein Ordner-Fenster ist offen, ein bestimmter Ordner ist sichtbar.
Nun soll ein Makro nach einem Ordner fragen. Der Anwender will diesen nun durch Anklicken dieses bereits bestehenden Ordner-Fensters zurückgeben.
Durch Anklicken, oder einfach das zuletzt aktive Windows-Ordnerfenster, falls das möglich ist.
Jedenfalls soll man nicht in einem neuen Dialogfenster sich mühsam zum gewünschten Ordner hin klicken müssen. Denn das ist ein langer Weg und es ist nicht der Ordner der Makrodatei.
LG, B.
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pfad aus Explorerfenster lesen
09.02.2017 17:39:02
Matthias
Hallo! Also so auf die schnelle würde ich sagen, dass man da mit diversen API Funktionen arbeiten müsste. Aber mal eine Frage, wie kommt dein User zu dem Ordner der schon offen ist? So wie ich das verstehe, gibst du da einen bestimmten Ordner / Pfad schon vor. Das heißt doch aber, dass du den genauen Speicherort schon kennst bzw. das System, welches den Ordner geöffnet hat. Wäre es nicht eine Möglichkeit diesen Pfad auch im Dialogfenster zu nutzen? VG
Anzeige
Pfad aus Explorerfenster lesen
09.02.2017 18:00:20
Anton
Hallo Barbara,
wenn ich dich richtig verstanden habe, dann so vielleicht:
Code:

Sub b()
  Dim objShell As Object, win As Object  
  Dim adresse As String, gefunden As Boolean    
  gefunden = False
  adresse = InputBox("Pfad eingeben:", "Eingabe", "C:\temp\pdfs")   'Pfad anpassen
  Set objShell = CreateObject("Shell.Application")  
  For Each win In objShell.Windows  
    If InStr(1, UCase(win.FullName), "EXPLORER") > 0 Then    
      win.navigate adresse
      AppActivate win.locationname
      gefunden = True
      Exit For  
    End If  
  Next
  If gefunden = False Then objShell.explore (adresse)  
  Set objShell = Nothing  
End Sub  


mfg Anton
Anzeige
AW: Pfad aus Explorerfenster lesen
09.02.2017 20:02:53
Barbara
Hallo
danke für Eure Antworten.
Habe mich vielleicht falsch ausgedrückt.
Praktisches Beispiel:
Ein Explorerfenster ist geöffnet und zeigt den Ordner mit endlos langem Pfad:
"C:\Users\anwender 1\Documents\Kunden intern\Apfel\2017\Bewertung\"
Nun öffne ich eine, meine Excel-Datei. Die will ich nun in den oben erwähnten Ordner speichern. Dazu starte ich das Makro meiner Träume. Eine Aufforderung soll erscheinen, mit der Bitte, das offene Explorerfenster anzuklicken. Denn dort soll sie hingespeichert werden. Nachdem ich es angeklickt habe, wird die Excel-Datei dorthin gespeichert.
Vielleicht geht das mit Antons Code, mit win.locationURL, denn da ist der Pfad, allerdings mit komischen Zeichen, wie %201 für Leerzeichen, oder %E4 für Ä.
Antons win.locationname ist ja nur der Ordnername ohne Pfad.
Es soll also nicht der Pfad händisch kopiert oder geschrieben werden, sondern durch einfaches Anklicken eines Ordnerfensters bestimmt werden.
Anzeige
AW: Pfad aus Explorerfenster lesen
10.02.2017 18:22:45
Anton
Hallo Barbara,
so?:
Code:

Sub b()
  Dim objShell As Object, win As Object  
  Set objShell = CreateObject("Shell.Application")  
  For Each win In objShell.Windows  
    If InStr(1, UCase(win.FullName), "EXPLORER") > 0 Then    
      If MsgBox("Soll deine Datei im Ordner " & vbCr & _  
                win.document.folder.self.Path & vbCr & _
                "gespeichert werden?", vbQuestion + vbYesNo, "Abfrage") = vbYes Then
        ThisWorkbook.SaveAs win.document.folder.self.Path & "\" & _
                            ThisWorkbook.Name, xlOpenXMLWorkbookMacroEnabled
        Exit For  
      End If  
    End If  
  Next
  Set objShell = Nothing  
End Sub  


mfg Anton
Anzeige
AW: Pfad aus Explorerfenster lesen
12.02.2017 21:35:53
Barbara
Ja, genau so.
Vielen Dank, Anton.
Du hast mir sehr geholfen.
LG,
Barbara
;
Anzeige

Infobox / Tutorial

Pfad aus Explorerfenster lesen und in Excel verwenden


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle "Einfügen" > "Modul".
  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub b()
       Dim objShell As Object, win As Object
       Set objShell = CreateObject("Shell.Application")
       For Each win In objShell.Windows
           If InStr(1, UCase(win.FullName), "EXPLORER") > 0 Then
               If MsgBox("Soll deine Datei im Ordner " & vbCr & _
                          win.document.folder.self.Path & vbCr & _
                          "gespeichert werden?", vbQuestion + vbYesNo, "Abfrage") = vbYes Then
                   ThisWorkbook.SaveAs win.document.folder.self.Path & "\" & _
                                       ThisWorkbook.Name, xlOpenXMLWorkbookMacroEnabled
                   Exit For
               End If
           End If
       Next
       Set objShell = Nothing
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus, indem du auf ALT + F8 drückst, das Makro auswählst und auf "Ausführen" klickst.


Häufige Fehler und Lösungen

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

    • Überprüfe, ob die Makros in deinen Excel-Einstellungen aktiviert sind.
  • Fehler: "Pfad nicht gefunden."

    • Stelle sicher, dass das Explorerfenster geöffnet ist und der gewünschte Ordner sichtbar ist.
  • Frage: Was bedeutet "als Pfad kopieren"?

    • Es bedeutet, den vollständigen Pfad eines Ordners oder einer Datei in die Zwischenablage zu kopieren, um ihn an anderer Stelle verwenden zu können.

Alternative Methoden

Eine andere Möglichkeit, den Pfad zu kopieren, wäre, dies manuell zu tun. Du kannst den Pfad im Explorer auswählen, mit der rechten Maustaste klicken und "Pfad kopieren" wählen. Dies funktioniert gut, ist jedoch weniger effizient als das oben beschriebene Makro.


Praktische Beispiele

Ein Beispiel für die Verwendung des Codes:

  • Wenn du im Explorerfenster den Ordner C:\Users\anwender 1\Documents\Kunden intern\Apfel\2017\Bewertung\ geöffnet hast, kannst du das Makro ausführen, und es wird gefragt, ob du die Datei dort speichern möchtest. Bei Bestätigung wird die Excel-Datei im entsprechenden Ordner gespeichert.

Tipps für Profis

  • Explorer Fenstergröße anpassen: Stelle sicher, dass das Explorerfenster groß genug ist, um alle Ordnerinhalte anzuzeigen. Dies erleichtert die Auswahl des gewünschten Ordners.

  • Speicherort speichern: Du kannst die letzte Auswahl des Ordners speichern, um den Pfad beim nächsten Mal wieder zu verwenden.

  • VBA anpassen: Experimentiere mit dem VBA-Code, um zusätzliche Funktionen hinzuzufügen, z. B. das automatische Öffnen des Ordners nach dem Speichern.


FAQ: Häufige Fragen

1. Wie kann ich den Pfad eines Ordners kopieren, wenn ich den Explorer verwende?
Du kannst den Pfad direkt im Explorer durch einen Rechtsklick auf den Ordner und Auswahl von "Pfad kopieren" kopieren.

2. Was ist der Unterschied zwischen "Pfad kopieren" und "als Pfad kopieren"?
"Pfad kopieren" bezieht sich auf das Kopieren des vollständigen Speicherorts, während "als Pfad kopieren" oft in Kontexten verwendet wird, in denen der Pfad in einen anderen Befehl oder ein Skript eingefügt wird.

3. Funktioniert dieser Code in allen Excel-Versionen?
Der Code sollte in den meisten modernen Excel-Versionen funktionieren, insbesondere in Excel 2010 und neuer.

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