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

Forumthread: VBA-Befehle zum Explorer öffnen

VBA-Befehle zum Explorer öffnen
17.01.2023 21:16:53
Lutz
Hallo,
kann mir jemand den VBA - Code geben, um diese Seite zu öffnen?
Userbild
Mit: Shell "explorer.exe /C:", vbNormalFocus lande ich immer Benutzerverzeichnis.
Gruß Lutz
Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Befehle zum Explorer öffnen
18.01.2023 08:02:35
Lutz
Hallo Ralf,
mit dem, was ich möchte, hat das wohl nichts zu tun. Erstens hab ich Win 7. Zweitens weiß ich diesen Explorer"ordner" manuell zu öffnen. Mein Ziel ist es ihn mit einem Klick aus dem Excel heraus aufrufen - sofern das überhaupt geht.
Gruß Lutz
Anzeige
AW: VBA-Befehle zum Explorer öffnen
18.01.2023 09:05:21
peterk
Hallo
Probier mal

Shell "explorer.exe shell:MyComputerFolder", vbNormalFocus
Peter
AW: VBA-Befehle zum Explorer öffnen
18.01.2023 09:22:54
Lutz
Hallo Peter, juh das ist es. Danke! Gruß Lutz
AW: VBA-Befehle zum Explorer öffnen
18.01.2023 09:40:44
Lutz
Noch eine Frage: Kann man den Befehl auch so erweitern, dass man in das Smartphone reinsehen kann?
Gruß Lutz
Anzeige
AW: VBA-Befehle zum Explorer öffnen
18.01.2023 11:44:39
peterk
Hallo
Geht nur über Namespace (Was hast Du eigentlich vor?)

Function GetPhoneCLSID(name As String)
    Set objShellApp = CreateObject("Shell.Application")
    Set objFolder = objShellApp.Namespace("shell:MyComputerFolder")
    For Each objItem In objFolder.Items()
        If InStr(1, objItem.name, name, vbTextCompare) > 0 Then
           GetPhoneCLSID = objItem.Path
        End If
    Next
End Function
Sub OpenGalaxy()
    Shell "explorer " & GetPhoneCLSID("Galaxy"), vbNormalFocus
End Sub
Peter
Anzeige
AW: VBA-Befehle zum Explorer öffnen
18.01.2023 13:21:10
Lutz
Hallo Peter,
schlussendlich - wenn machbar - möchte ich die Mappe in der ich mich gerade befinde (nennen wir sie Test1.xls),in das Smartphone-Verzeichnis namens ZZZ kopieren (ohne Meldung, ob ersetzt werden soll, weil es sie unter dem Namen ja schon vorhanden ist).
Dein Code funktioniert. Ich würde aber auch gern ohne Kopieren das Verzeichnis ZZZ anzeigen lassen.
Es kommt als nächstes, nach dem, was jetzt mit deinem Code aufgerufen wird. Siehe Bild.
Userbild
Gruß Lutz
Anzeige
AW: VBA-Befehle zum Explorer öffnen
18.01.2023 16:09:11
peterk
Hallo
Probier mal

Shell "explorer " & GetPhoneCLSID("Galaxy") & "\ZZZ", vbNormalFocus
Peter
AW: VBA-Befehle zum Explorer öffnen
18.01.2023 20:19:11
Lutz
Hallo Peter,
nein. Da hängt es erst und irgendwann geht mein Benutzerordner in C: auf. Fehlt da nicht noch der Pfad dazwischen? Ich meine nach Phone und vor ZZZ. Vielleicht müsste die Ebene sich erst mal aufrufen lassen.
Gruß Lutz
Anzeige
AW: VBA-Befehle zum Explorer öffnen
19.01.2023 08:39:57
peterk
Hallo
Villeicht so (ich hab kein Android Telefon)

Shell "explorer " & GetPhoneCLSID("Galaxy") & "\Phone\ZZZ", vbNormalFocus
Peter
AW: VBA-Befehle zum Explorer öffnen
19.01.2023 10:11:34
Lutz
Hallo Peter,
es braucht beim ersten mal ca. 1 Minute, dann ist es da. Mach ich es wieder, kommt es gleich. Starte ich den Rechner neu, braucht es wieder erst mal 1 Minute. Aber von der Sache her ist es so richtig. Danke.
Kannst du mir noch helfen mit dem Kopieren der gerade geöffneten Datei (z.B. Test1.xls) ins Verzeichnis ZZZ?
Gruß Lutz
Anzeige
AW: VBA-Befehle zum Explorer öffnen
19.01.2023 11:15:36
peterk
Hallo
Ungetestet (IOS lässt nicht kopieren)

Sub CopyGalaxy()
    Set objShellApp = CreateObject("Shell.Application")
    Set copyfolder = objShellApp.Namespace(GetPhoneCLSID("Galaxy") & "\Phone\ZZZ")
    ' Workbook sollte vorher gespeichert werden
    copyfolder.CopyHere ThisWorkbook.FullName, 16  ' 16 überschreibt eine vorhanden Datei
    ' oder eine ganze andere Datai
    'copyfolder.CopyHere "C:\Users\Name\Documents\WasAuchImmer.xlsx",16
End Sub
Peter
Anzeige
AW: VBA-Befehle zum Explorer öffnen
19.01.2023 10:22:48
Lutz
Das lange dauert es, nach dem ich das Handy neu mit dem PC verbunden habe. Einmal verbunden, geht es schnell. Liegt also nicht am PC.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA-Befehle zum Explorer öffnen


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.

  2. Modul hinzufügen: Klicke im Menü auf Einfügen und wähle Modul aus.

  3. Code einfügen: Füge den folgenden Code in das Modul ein, um den Explorer mit einem bestimmten Pfad zu öffnen:

    Sub OpenExplorer()
       Shell "explorer.exe shell:MyComputerFolder", vbNormalFocus
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor und führe das Makro über Entwicklertools > Makros aus.


Häufige Fehler und Lösungen

  • Fehler beim Öffnen: Wenn der Explorer nicht öffnet oder ins Benutzerverzeichnis eingeleitet wird, stelle sicher, dass der Pfad korrekt ist. Verwende Shell "explorer.exe <Pfad>", vbNormalFocus, um direkt in einen gewünschten Ordner zu navigieren.

  • Langsame Reaktion: Wenn das Öffnen des Explorer langsam ist, kann dies an der Verbindung zum Smartphone liegen. Überprüfe die Verbindung und teste die Geschwindigkeit nach dem ersten Öffnen erneut.


Alternative Methoden

  • Namespace verwenden: Du kannst auch den Namespace verwenden, um auf spezielle Ordner zuzugreifen. Hier ein Beispiel, um einen Ordner auf deinem Smartphone zu öffnen:

    Function GetPhoneCLSID(name As String)
      Set objShellApp = CreateObject("Shell.Application")
      Set objFolder = objShellApp.Namespace("shell:MyComputerFolder")
      For Each objItem In objFolder.Items()
          If InStr(1, objItem.name, name, vbTextCompare) > 0 Then
             GetPhoneCLSID = objItem.Path
          End If
      Next
    End Function
    
    Sub OpenPhoneFolder()
      Shell "explorer " & GetPhoneCLSID("Galaxy") & "\Phone\ZZZ", vbNormalFocus
    End Sub

Praktische Beispiele

  • Explorer mit Pfad öffnen: Um den Explorer direkt in einen bestimmten Ordner zu öffnen, nutze diesen Befehl:

    Shell "explorer.exe C:\Dein\Pfad\Hier", vbNormalFocus
  • Datei kopieren: Um eine Datei in einen Ordner auf deinem Smartphone zu kopieren, verwende:

    Sub CopyFileToPhone()
      Set objShellApp = CreateObject("Shell.Application")
      Set copyfolder = objShellApp.Namespace(GetPhoneCLSID("Galaxy") & "\Phone\ZZZ")
      copyfolder.CopyHere ThisWorkbook.FullName, 16  ' 16 überschreibt eine vorhandene Datei
    End Sub

Tipps für Profis

  • Automatisierung: Kombiniere die Shell-Befehle mit anderen Excel VBA-Funktionen, um Prozesse zu automatisieren.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um unerwartete Situationen abzufangen. Beispiel:

    On Error Resume Next
    ' Dein Code hier
    If Err.Number <> 0 Then
      MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
    End If
  • Nutzung von vbNormalFocus: Achte darauf, vbNormalFocus zu verwenden, um sicherzustellen, dass das Fenster des Explorers im Vordergrund angezeigt wird.


FAQ: Häufige Fragen

1. Wie kann ich den Explorer zu einem bestimmten Ordner öffnen?
Verwende den Befehl Shell "explorer.exe C:\Dein\Pfad", vbNormalFocus, um direkt zu einem gewünschten Ordner zu navigieren.

2. Kann ich Dateien aus Excel direkt auf mein Smartphone kopieren?
Ja, nutze den CopyHere-Befehl innerhalb einer VBA-Funktion, um die Datei in den gewünschten Ordner auf deinem Smartphone zu kopieren. Stelle sicher, dass das Smartphone richtig verbunden ist.

3. Was ist der Unterschied zwischen Shell und Namespace?
Shell öffnet Anwendungen oder Dateien, während Namespace es dir ermöglicht, direkt mit den Ordnerinhalten in Windows zu interagieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige