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

Forumthread: Makro Ordner öffnen

Makro Ordner öffnen
08.03.2007 21:06:00
ganz
Hallo,
ich möchte einer Schaltfläche ein Makro zuweisen das bei click einen ordner auf dem Desktop öffnet.
kann mir da jemand helfen?
Gruß
ralf
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro Ordner öffnen
08.03.2007 21:36:47
Timo
Hallo,
So
Sub Desktopordner_öffnen()
Shell "Explorer ,C:\Dokumente und Einstellungen\GanzNeuer\Desktop\Neuer Ordner", vbNormalFocus
End Sub

Den Pfad musst du halt noch anpassen!
Gruß Timo
AW: Makro Ordner öffnen
08.03.2007 21:42:17
Josef
Hallo Ralf,
so geht's ohne Pfadanpassung.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit
Public Enum CSIDLS
    CSIDL_DESKTOP = &H0& ' Desktop
    CSIDL_INTERNET = &H1& ' Internet
    CSIDL_PROGRAMS = &H2& ' Startmenü: Programme
    CSIDL_CONTROLS = &H3& ' Systemsteuerung
    CSIDL_PRINTERS = &H4& ' Drucker
    CSIDL_PERSONAL = &H5& ' Eigene Dateien
    CSIDL_FAVORITES = &H6& ' IE: Favoriten
    CSIDL_STARTUP = &H7& ' Autostart
    CSIDL_RECENT = &H8& ' Zuletzt benutzte Dokumente
    CSIDL_SENDTO = &H9& ' Senden an / SendTo
    CSIDL_BITBUCKET = &HA& ' Papierkorb
    CSIDL_STARTMENU = &HB& ' Startmenü
    CSIDL_MYMUSIC = &HD ' Eigene Musik
    CSIDL_MYVIDEO = &HE ' Eigene Videos
    CSIDL_DESKTOPDIRECTORY = &H10& ' Desktopverzeichnis
    CSIDL_DRIVES = &H11& ' Mein Computer
    CSIDL_NETWORK = &H12& ' Netzwerk
    CSIDL_NETHOOD = &H13& ' Netzwerkumgebung
    CSIDL_FONTS = &H14& ' Windows\Fonts
    CSIDL_TEMPLATES = &H15& ' Vorlagen
    CSIDL_COMMON_STARTMENU = &H16& ' "All Users" - Startmenü
    CSIDL_COMMON_PROGRAMS = &H17& ' "All Users" - Programme
    CSIDL_COMMON_STARTUP = &H18& ' "All Users" - Autostart
    CSIDL_COMMON_DESKTOPDIRECTORY = &H19& ' "All Users" - Desktop
    CSIDL_APPDATA = &H1A& ' Anwendungsdaten
    CSIDL_PRINTHOOD = &H1B& ' Druckumgebung
    CSIDL_LOCAL_APPDATA = &H1C& ' Lokale Einstellungen\Anwendungsdaten
    CSIDL_COMMON_FAVORITES = &H1F& ' "All Users" - Favoriten
    CSIDL_INTERNET_CACHE = &H20& ' IE: Temporäre Internetdateien
    CSIDL_COOKIES = &H21& ' IE: Cookies
    CSIDL_HISTORY = &H22& ' IE: Verlauf
    CSIDL_COMMON_APPDATA = &H23& ' "All Users" - Anwendungsdaten
    CSIDL_WINDOWS = &H24& ' Windows
    CSIDL_SYSTEM = &H25& ' Windows\System32
    CSIDL_PROGRAM_FILES = &H26& ' C:\Programme
    CSIDL_MYPICTURES = &H27& ' Eigene Bilder
    CSIDL_PROFILE = &H28& ' Anwenderprofil (Benutzername)
    CSIDL_SYSTEMX86 = &H29& ' Windows\System32
    CSIDL_PROGRAM_FILES_COMMON = &H2B& ' Gemeinsame Dateien
    CSIDL_COMMON_TEMPLATES = &H2D& ' "All Users" - Vorlagen
    CSIDL_COMMON_DOCUMENTS = &H2E& ' "All Users" - Dokumente
    CSIDL_COMMON_ADMINTOOLS = &H2F& ' "All Users" - Verwaltung
    CSIDL_ADMINTOOLS = &H30& ' Startmenü\Programme\Verwaltung
End Enum
Private Const CSIDL_FLAG_DONT_VERIFY As Long = &H4000&
Private Const CSIDL_FLAG_CREATE As Long = &H8000&
Private Const CSIDL_FLAG_MASK As Long = &HFF00&
Private Const SHGFP_TYPE_CURRENT As Long = 0&
Private Const SHGFP_TYPE_DEFAULT As Long = 1&
Private Const MAX_PATH As Long = 260&
Private Const S_OK As Long = 0&
Private Const S_FALSE As Long = 1&
Private Const E_INVALIDARG As Long = &H80070057
Private Declare Function SHGetFolderPath _
    Lib "shfolder" Alias "SHGetFolderPathA" ( _
    ByVal hWndOwner As Long, _
    ByVal Folder As Long, _
    ByVal hToken As Long, _
    ByVal Flags As Long, _
    ByVal strPath As String _
    ) As Long
Public Function GetSpecialFolder(ByVal CSIDL As CSIDLS, _
    Optional ByVal Create As Boolean = False, _
    Optional ByVal Verify As Boolean = False _
    ) As String

' Liefert den Pfad zu einem speziellen Verzeichnis zurück. Im Fehlerfall
' wird ein leerer String returniert. Wird Create zu True gesetzt, so wird
' ein abgefragtes Verzeichnis bei Bedarf automatisch angelegt. Setzen Sie
' Verify zu True, um vor der Rückgabe eines Pfades eine Prüfung durchzu-
' führen, dass der Pfad tatsächlich existiert.
Dim sPath As String ' Zu ermittelnder Pfad
Dim RetVal As Long ' Rückgabewert
Dim lFlags As Long ' Eigenschaften
' Stringbuffer füllen
sPath = Space$(MAX_PATH)
' Flags-Parameter zusammenstellen
lFlags = CSIDL
If Create Then ' Bei Bedarf automatisch erzeugen
    lFlags = lFlags Or CSIDL_FLAG_CREATE
End If
If Not Verify Then ' Existenz nicht überprüfen
    lFlags = lFlags Or CSIDL_FLAG_DONT_VERIFY
End If
' Pfad zum Verzeichnis ermitteln
RetVal = SHGetFolderPath(0, lFlags, 0, SHGFP_TYPE_CURRENT, sPath)
' Erfolgskontrolle und Rückgabe des Ergebnisses
Select Case RetVal
    Case S_OK
        ' Gültiges Verzeichnis gefunden
        GetSpecialFolder = Left$(sPath, InStr(1, sPath, vbNullChar) - 1)
    Case S_FALSE ' S_FALSE
        ' lCSIDL ist gültig, aber das Verzeichnis existiert nicht
    Case E_INVALIDARG
        ' Ungültiges Verzeichnis
End Select
End Function



Sub openFolder()
Dim strDesktop As String, strFolder

strFolder = "Daten"

strDesktop = GetSpecialFolder(CSIDL_DESKTOP, Verify:=True)

Shell "C:\Windows\explorer.exe /e, " & strDesktop & "\" & strFolder, vbNormalFocus

End Sub

Gruß Sepp
Anzeige
AW: Makro Ordner öffnen
10.03.2007 09:59:18
Rolf
Hallo Sepp,
oder so
Sub openFolder()
Dim strDesktop As String, strFolder
strFolder = "Google.url"
strDesktop = CreateObject("WScript.Shell").SpecialFolders("Desktop")
Shell "C:\Windows\explorer.exe /e, " & strDesktop & "\" & strFolder, vbNormalFocus
End Sub

hG
Rolf
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Makro zum Öffnen eines Ordners in Excel


Schritt-für-Schritt-Anleitung

Um ein Makro zu erstellen, das einen Ordner auf deinem Desktop öffnet, folge diesen Schritten:

  1. Öffne Excel und gehe zum VBA-Editor. Drücke ALT + F11.

  2. Füge ein neues Modul hinzu:

    • Klicke im Menü auf Einfügen > Modul.
  3. Kopiere und füge den folgenden Code ein:

    Sub Desktopordner_öffnen()
       Shell "explorer.exe C:\Pfad\Zu\Deinem\Ordner", vbNormalFocus
    End Sub

    Ersetze C:\Pfad\Zu\Deinem\Ordner mit dem tatsächlichen Pfad zu deinem gewünschten Ordner.

  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Weise das Makro einer Schaltfläche zu:

    • Füge eine Schaltfläche (über Entwicklertools > Einfügen) in dein Arbeitsblatt ein.
    • Klicke mit der rechten Maustaste auf die Schaltfläche und wähle Makro zuweisen. Wähle Desktopordner_öffnen aus.

Jetzt kannst du auf die Schaltfläche klicken, um den Ordner zu öffnen.


Häufige Fehler und Lösungen

Fehler: Der Pfad scheint nicht korrekt zu sein.
Lösung: Stelle sicher, dass der Pfad zu deinem Ordner korrekt ist. Du kannst auch den vollständigen Pfad über den Windows Explorer kopieren.

Fehler: Das Makro öffnet den Ordner nicht.
Lösung: Überprüfe, ob du die richtigen Berechtigungen hast, um den Ordner zu öffnen. Wenn der Ordner auf einem Netzwerkpfad ist, stelle sicher, dass die Verbindung aktiv ist.


Alternative Methoden

Eine alternative Methode, um einen Ordner zu öffnen, ist die Verwendung der CreateObject-Methode:

Sub openFolder()
    Dim strDesktop As String, strFolder As String
    strFolder = "DeinOrdner"
    strDesktop = CreateObject("WScript.Shell").SpecialFolders("Desktop")
    Shell "explorer.exe """ & strDesktop & "\" & strFolder & """", vbNormalFocus
End Sub

Diese Methode verwendet die WScript.Shell-Klasse, um den Desktop-Pfad zu ermitteln, was nützlich ist, wenn sich der Benutzername oder der Ordnerpfad ändert.


Praktische Beispiele

  1. Einfacher Ordner öffnen:

    Sub EinfachOrdnerÖffnen()
       Shell "explorer.exe C:\Users\DeinBenutzername\Desktop\NeuerOrdner", vbNormalFocus
    End Sub
  2. Ordner mit Dateiauswahl (Excel VBA):

    Um einen Ordner zu öffnen und eine Datei auszuwählen, kannst du den folgenden Code verwenden:

    Sub OrdnerÖffnenUndDateiAuswählen()
       Dim fDialog As FileDialog
       Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
       fDialog.InitialFileName = "C:\Users\DeinBenutzername\Desktop"
       If fDialog.Show = -1 Then
           MsgBox "Ausgewählte Datei: " & fDialog.SelectedItems(1)
       End If
    End Sub

Tipps für Profis

  • Verwende vba explorer mit pfad öffnen, um die Benutzererfahrung zu verbessern, indem du den Pfad dynamisch anpasst.
  • Nutze vba dateipfad öffnen, um spezifische Dateien in einem Ordner zu öffnen.
  • Experimentiere mit der Application.InputBox-Methode, um Benutzereingaben für den Ordnernamen zu ermöglichen.

FAQ: Häufige Fragen

1. Wie kann ich einen bestimmten Ordner mit einem Makro öffnen?
Verwende die Shell-Funktion und gib den vollständigen Pfad des Ordners an.

2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, die meisten VBA-Codes zum Öffnen von Ordnern funktionieren in Excel 2010 und später. Stelle sicher, dass du die richtigen Berechtigungen hast.

3. Kann ich auch Dateien direkt öffnen?
Ja, du kannst den Shell-Befehl anpassen, um eine spezifische Datei in einem Ordner zu öffnen, indem du den vollständigen Pfad zur Datei angibst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige