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

Forumthread: Datei-Explorer per Makro öffnen

Datei-Explorer per Makro öffnen
02.04.2021 12:38:25
Ulrich
Hallo,
ich habe eine Frage.
Mit folgendem VBA-Code öffnet sich im aktuellen Verzeichnis der Dateiexplorer und ich kann eine EXCEL-Datei auswählen und öffnen.
Nun wäre es schön wenn auch andere Dateien angezeigt und geöffnet werden könnten. (Aktuelles Verzeichnis und Unterverzeichnisse.)
Kann mir hier jemand helfen?
Danke vorab.
Gruß Ulli
Sub Explorer()
' Explorer Makro
Dim Dateiauswahl As Variant
erneut:
ChDrive ThisWorkbook.Path
ChDir ThisWorkbook.Path
Dateiauswahl = Application.GetOpenFilename
' Application.Dialogs(xlDialogOpen).Show ActiveWorkbook.Path '(auch möglich)
If Dateiauswahl  False Then
Workbooks.Open Filename:=Dateiauswahl
Else
If MsgBox("Es wurde keine Datei ausgewählt. Klicken Sie 'OK' um eine Datei auszuwählen,  _
oder 'Abbrechen' um den Vorgang abzubrechen und das Makro zu beenden.", (vbOKCancel)) = vbOK Then
GoTo erneut
Else
Exit Sub
End If
End If
End Sub


Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Datei-Explorer per Makro öffnen
02.04.2021 13:36:03
Nepumuk
Hallo Ulli,
teste mal:
Option Explicit
Option Compare Text
Private Declare PtrSafe Function ShellExecuteA Lib "shell32.dll" ( _
ByVal hwnd As LongPtr, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As LongPtr
Private Const SW_SHOWMAXIMIZED As Long = 3
Public Sub Explorer()
' Explorer Makro
Dim strPath As String
Dim vntTemp As Variant
Dim objFileDialog As FileDialog
Do
Set objFileDialog = Application.FileDialog(fileDialogType:=msoFileDialogFilePicker)
With objFileDialog
.AllowMultiSelect = False
.InitialFileName = ThisWorkbook.Path
If .Show Then strPath = .SelectedItems(1)
End With
Set objFileDialog = Nothing
If strPath = vbNullString Then
If MsgBox("Es wurde keine Datei ausgewählt.", vbOKCancel) = vbCancel Then Exit Sub
Else
vntTemp = Split(strPath, ".")
If vntTemp(UBound(vntTemp, 1)) Like "xls*" Then
Call Workbooks.Open(Filename:=strPath)
Else
Call ShellExecuteA(0, "OPEN", strPath, vbNullString, vbNullString,  _
SW_SHOWMAXIMIZED)
End If
Exit Do
End If
Loop
End Sub

Gruß
Nepumuk

Anzeige
AW: Datei-Explorer per Makro öffnen
02.04.2021 14:35:23
Ulrich
Hallo Nepumuk,
einwandfrei, super !!
Ganz ganz herzlichen Dank.
Gruß Ulli
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Datei-Explorer per Makro in Excel öffnen


Schritt-für-Schritt-Anleitung

Um den Datei-Explorer in Excel über ein Makro zu öffnen, kannst du den folgenden VBA-Code verwenden. Dieser öffnet den Explorer im aktuellen Verzeichnis und ermöglicht es dir, eine Excel-Datei oder andere Dateien auszuwählen.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Füge den folgenden Code in das Modul ein:
Sub Explorer()
    Dim Dateiauswahl As Variant
    erneut:
    ChDrive ThisWorkbook.Path
    ChDir ThisWorkbook.Path
    Dateiauswahl = Application.GetOpenFilename

    If Dateiauswahl <> False Then
        Workbooks.Open Filename:=Dateiauswahl
    Else
        If MsgBox("Es wurde keine Datei ausgewählt. Klicken Sie 'OK' um eine Datei auszuwählen, oder 'Abbrechen' um den Vorgang abzubrechen.", vbOKCancel) = vbOK Then
            GoTo erneut
        Else
            Exit Sub
        End If
    End If
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Um das Makro auszuführen, kannst du in der Menüleiste auf Entwicklertools > Makros klicken und dein Makro auswählen.

Häufige Fehler und Lösungen

  • Problem: Der Dateiexplorer öffnet sich nicht.

    • Lösung: Stelle sicher, dass das Makro aktiviert ist und dass du die richtigen Berechtigungen hast, um Makros in deiner Excel-Version auszuführen.
  • Problem: Es wird keine Datei ausgewählt.

    • Lösung: Achte darauf, dass du eine Datei im Dialog auswählst. Wenn du den Dialog abbrichst, wird eine Meldung angezeigt, die dich auffordert, erneut zu versuchen.

Alternative Methoden

Eine weitere Möglichkeit, um den Datei-Explorer zu öffnen, ist die Verwendung des folgenden Codes, der eine Datei-Dialogbox öffnet. Mit dieser Methode kannst du verschiedene Dateitypen auswählen:

Sub Explorer()
    Dim strPath As String
    Dim objFileDialog As FileDialog
    Set objFileDialog = Application.FileDialog(msoFileDialogFilePicker)

    With objFileDialog
        .AllowMultiSelect = False
        .InitialFileName = ThisWorkbook.Path
        If .Show Then
            strPath = .SelectedItems(1)
            Call Workbooks.Open(Filename:=strPath)
        End If
    End With
End Sub

Praktische Beispiele

Hier sind einige praktische Anwendungsmöglichkeiten des Makros:

  • Excel-Dateien öffnen: Das Makro erlaubt dir, Excel-Dateien direkt aus dem Explorer auszuwählen und zu öffnen.
  • Andere Dateiformate: Mit der erweiterten Methode kannst du auch andere Dateiformate öffnen, indem du den ShellExecuteA Befehl verwendest, um eine Datei im Standardprogramm zu öffnen.

Verwende den folgenden Code, um den Explorer für alle Dateitypen zu öffnen:

Call ShellExecuteA(0, "OPEN", strPath, vbNullString, vbNullString, SW_SHOWMAXIMIZED)

Tipps für Profis

  • Makro-Tastenkombination: Du kannst eine Tastenkombination für dein Makro festlegen, um es schneller auszuführen. Gehe dazu in Entwicklertools > Makros, wähle dein Makro aus und klicke auf Optionen.
  • Erweiterte Filter: Füge Filter hinzu, um nur bestimmte Dateitypen im Explorer anzuzeigen, indem du die Filters-Eigenschaft des FileDialog-Objekts verwendest.

FAQ: Häufige Fragen

1. Wie kann ich den Explorer für einen bestimmten Ordner öffnen? Du kannst den Pfad des gewünschten Ordners in der ChDir-Anweisung ändern.

2. Funktioniert das Makro in allen Excel-Versionen? Der bereitgestellte Code sollte in den meisten modernen Excel-Versionen (ab Excel 2010) funktionieren. Achte darauf, dass die Makros in den Excel-Optionen aktiviert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige