Dateien aus einer Excel-Arbeitsmappe öffnen

Gelegentlich werden Sie für eine bestimmte Aufgabe verschiedene Dateien benötigen. Das kann z.B. vorkommen wenn Sie ein Excel-Tool nutzen, dass die Bearbeitung, Datenerfassung und/oder die Erstellung von Schriftwechseln übernimmt und hierfür die Daten aus einer extern gespeicherten Adressliste, Anbieterliste etc. über ein Makro eingelesen und verarbeitet werden soll.

Heute stelle ich Ihnen zwei kleine VBA-Bausteine vor mit denen Sie während eines Makroablaufs an einer beliebigen Stelle diesen Vorgang in den automatisierten Ablauf integrieren können.

Der erste Programmcode enthält keine Fehlerroutine. Sie können den Code an der Stelle in Ihrem Makro einfügen, an der die weitere Excel-Datei geöffnet werden soll. Dazu brauchen Sie nur diesen einzeiligen Code einzufügen.

Application.Dialogs(xlDialogOpen).Show

Der VBA-Code bewirkt, dass sich ein Dialogfenster öffnet in dem Sie die Datei auswählen und öffnen können. Über den Button “Abbrechen” können Sie den Vorgang abbrechen ohne eine Datei zu öffnen. Beachten Sie dabei aber, dass dies zu Problemen führen kann, wenn Ihr Makro in den Sie den VBA-Code hinzugefügt haben mit einer zu öffnenden Datei weitere Bearbeitungsschritte durchführen will. Aus diesem Grund ist es unter Umständen sinnvoll den einfachen Code um eine Überprüfungsroutine zu ergänzen.

In der folgenden zweiten Variante wird der Name der ausgewählten Datei zunächst an die Variable “Dateiauswahl” übergeben und in der anschließend ausgeführten Wenn-Dann-Sonst-Funktion überprüft. Wurde eine Datei ausgewählt, wird sie geöffnet, nimmt die Variable keinen Wert an, erscheint stattdessen eine Hinweisbox mit zwei Optionen. Wird “OK” geklickt, erscheint erneut das Datei-Auswahlmenü. Wird dagegen auf “Abbrechen” geklickt, wird das Makro beendet. Jeder Befehl den das Makro anschließend eigentlich noch hätte ausführen sollen, wird dadurch nicht mehr ausgeführt.

Dim Dateiauswahl As Variant

erneut:
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 und das Makro zu beenden.", (vbOKCancel)) = vbOK Then
        GoTo erneut
    Else
        Exit Sub
    End If
End If

Der zweite VBA-Code ist ggf. noch an Ihr Makro anzupassen. Wurden z.B. vor dem Code bereits einige Befehle ausgeführt, die beim Abbruch des Vorgangs wieder rückgängig gemacht werden sollen, dann sind entsprechende Befehle direkt nach der Zeile “Else” und vor der Zeile “Exit Sub” einzufügen. Auch wenn der Programmcode umständlicher ist, so sollten Sie den Code aus dem zweiten Beispiel doch bevorzugt verwenden, wenn es ansonsten in Folge keiner Dateiauswahl zu Fehlern bei der weiteren Ausführung kommt.

In der angehängten Exceldatei können Sie beide Beispiele testen. Wie Sie sehen werden, unterscheiden Sie sich bei der Ausführung lediglich beim Klick auf den Button “Abbrechen”. Ohne Folgebefehle gibt es bei beiden Varianten keine Probleme. Ein sinnvoller Einsatz der Funktion setzt allerdings weitere Befehle voraus, weil es sonst nur eine nette Spielerei ist. Dateien öffnen geht über einen Doppelklick im Explorer Fenster oder über die Excelmenüleiste schließlich genauso komfortabel.

Excel-Dateien mit VBA öffnenExcel-Dateien per Makro öffnen

 

Schreibe einen Kommentar

*