Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Excel 2016 VBA Grundkurs

Arbeitsmappe öffnen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Sie können eine Arbeitsmappe auch aus einer vorhandenen Datei öffnen. Sie dürfen dabei dem Benutzer sogar die freie Wahl der Datei überlassen, indem Sie den Datei-Öffnen-Dialog von Windows nutzen.

Transkript

Sie können natürlich nicht nur einfach ein Workbook mit der Add-Methode neu anlegen, sondern Sie können auch eine vorhanden Datei öffnen. Deswegen habe ich bereits ein neues Modul aufgemacht und will in dieser eine Arbeitsmappe öffnen, also wirklich eine Datei zur Arbeitsmappe machen sozusagen, mit "sub BestimmteArbeitsmappeOeffnen()" und ganz wichtig: Bloß keine Umlaute in Bezeichnungen von Subs oder Functions oder was auch immer. Und da können wir auch direkt eine Variable hinterlegen. Also den "wbk", nennen wir den mal "Oeffnen As Workbook". Das ist egal ob ich eine neu anlege oder eine öffne, wenn ich mit ihr was machen will, sollte ich unbedingt "set wbk (irgendwas)=" schreiben. Und das Gegenstück zu Workbooks Add ist ein "Workbooks.Open" und da müssen Sie natürlich dazusagen, welche Datei Sie öffnen wollen. Und etwas irreführend ist hier die Tatsache, dass da "Filename As String" verlangt wird, in Wirklichkeit wird nämlich "Path" im Filename verlangt. Ich muss also hier den Pfad angeben. Ich suche die Datei einfach im gleichen Verzeichnis, wo diese Datei auch steht, also frage ich mal "(ThisWorkbook.path" ab und hänge dann den gewünschten Dateinamen dran. Die habe ich schon angelegt inzwischen, die heißt "Beispieldatei.xlsx". Das allerdings ist ein ziemliches Risiko, denn typischerweise fehlt hinter dem Pfad der Backslash. Dafür habe ich meine wunderschöne Function, die jetzt hier noch steht, die heißt "PfadMitBackslash". Die sorgt ja dafür, wenn ich einen Pfad reingebe, kriege ich ihn immer mit Backslash zurück, egal ob schon einer dran stand oder nicht! Ich werde jetzt also auf dieser Eigenschaft das Ganze anwenden, "PfadMitBackslash", Klammer auf und hier Klammer zu. Sie haben vielleicht gesehen, ich habe hier vorher ein Leerzeichen gemacht, sonst kann man mit Strg+Leertaste diese Bezeichnung nicht ausklappen lassen, weil dann das nächste Wort schon dransteht. Jetzt ist alles in Ordnung, dieser Pfad kriegt schnell einen Backslash dran, ob er in hat oder nicht, und dann kann ich den Dateinamen dranhängen. Und jetzt kommt der übliche Beweis, dass ich darauf Zugriff habe, also "wbkOeffnen. (nenn wir es ruhig) FullName". Wenn das alles klappt, dann habe ich diese Datei geöffnet. Sie sehen im Moment, es ist nur eine einzige Datei offen. Ich mache hier mal wieder zu. Und wenn ich das jetzt mit F5 ausführe, dann blitzt es einmal kurz. Da ist diese zweite Datei geöffnet. Hier habe ich dann FullName, also Pfad-Unterteil. Das ist die einfachste Möglichkeit, wenn Sie eine Datei von der Sie wissen wo Sie steht, - dass müssen Sie hier komplett angeben - öffnen wollen. Was Sie dann damit machen, mit diesem "wbkOeffnen"-Objekt, ist dann völlig frei. Ich muss die mal eben wieder schließen. Also hier, mit "Datei, Schließen" oder mit Strg+F4. Mit Alt+F11 wieder zurück, denn ich möchte die Datei nicht vorgeben, sondern ich möchte meinem Benutzer erlauben, eine auszuwählen. Das ist sehr ähnlich, ich kann das jetzt einfach mit gedrückter Strg-Taste schon mal runterkopieren. Aber es ist nicht eine "Bestimmte", sondern eine "BeliebigeArbeitsmappeOeffnen". Ich nenne das weiter "wbkOeffnen", aber der Unterschied ist, ich werde hier nicht vorgeben was zu öffnen ist, - da kommt gleich wieder was rein- sondern in einer ganz banalen Stringvariablen mit "strDatei", den Dateinamen erfragen. Also "Dim strDatei As String" und auf die werde ich mich beziehen. Aber ich muss natürlich an der Stelle erstmal einen Inhalt reinfüllen, und der Benutzer sieht gleich einen ganz normalen Windowsdatei-Öffnen-Dialog. Aber der tut nichts. Der will nur spielen sozusagen, nicht der Benutzer sondern der Dialog. Für den Benutzer sieht es so aus, also ob er mit einem Datei-Öffnen-Dialog, eine Datei öffnet. Wir wissen jetzt, dass wir hier einen Dialog vortäuschen - nenne ich das mal - und das ist einer von den wenigen Befehlen, die wirklich mit "Application" beginnen müssen. Alle anderen unterstellen das Application-Object, dieser muss es haben. Und den Befehl gibt es auch nur in Excel. Der heißt "GetOpenFilename" und das erzeugt diesen Dialog und hat einige optionale Argumente, vor allem das letzte will ich sicherstellen. Sie sehen schon, Sie können die anderen optionalen, mit Komma übergehen. Das letzte, dieses "Multiselect" ermöglicht mehrere Dateien gleichzeitig auszuwählen. Das stelle ich auf "false", ich will nur eine einzige Datei erlauben. Und das bedeutet, wenn hier eine Datei inklusive Pfad drinsteht, dann erst gehe ich im zweiten Schritt hin und öffne sie. Also, wir können zwischendurch gerne eine Messagebox machen, dann ist es offensichtlicher. "Sie möchten diese Datei:" und da sollte dann natürlich außer VBA-Information, vor allem die Konstante für den Titel, damit man sieht wer das verursacht. Hier kann wieder alles weg und wenn ich das jetzt mit F5 starte, dann sehen Sie hier, einen ganz regulären Datei-Öffnen-Dialog, Sie können jetzt eine beliebige Datei auswählen, - ich habe ja hier schon eine vorbereitet - - die darf ich nicht nehmen, die ist nämlich schon offen - diese Datei klickt der Benutzer also an, geht auf öffnen und jetzt kommt meine Meldung dazwischen, - die ist also noch nicht geöffnet - ich zeige schon mal den Dateinamen an und Sie sehen das er mit Pfad komplett ist, und nach dem OK, dann erst wird sie wirklich geöffnet. Das macht meine Prozedur. Also "GetOpenFilename" ist perfekt, um den Benutzer eine Datei auswählen zu lassen. Da kann er alles drin machen, was er normalerweise auch machen kann, aber zwischendurch können Sie an der Stelle noch schnell abfragen, ob Sie die wirklich öffnen wollen. Allerdings kann er diesen Dialog natürlich auch abbrechen. Deswegen sollten wir an der Stelle eine kleine Verbesserung machen. Wenn Sie ihn abbrechen, gibt er den Wert falsch zurück. D.h. hier muss ich die Variable ändern, in einen anderen Datentyp. Ich mache jetzt einfach mit Strg+H Bearbeiten Ersetzen: ein "varDatei" und zwar innerhalb der "aktuellen Prozedur", "Alle ersetzen". "4 Elemente" sieht gut aus, da habe ich alle erwischt, und dann natürlich "As variant" und deswegen werde ich hier mit "if" prüfen, "if varDatei = False Then". Ist es schief gegangen, dann möchte der Benutzer nicht: "Else", da kann ich dann alles mit Tab-Taste einrücken und "End if" abschließen. Wenn die Eigenschaft "False" auftaucht, dann kann ich Bescheid sagen: "Also abgebrochen...", oder wie immer Sie das formulieren wollen und da mache ich dann mal ein "Exclamation" und wieder die Konstante. Dann sollten wir das nochmal testen, also zuerst mit "Debuggen, Kompilieren", - alles in Ordnung technisch - und dann mit F5 kann ich jetzt hier tatsächlich abbrechen, und das wird erkannt. Und nochmal F5 wenn ich die Datei auswähle. Das wird genauso erkannt und dann ist sie auch geöffnet. Das ist sozusagen die perfekte Variante, wenn Sie dem Benutzer erlauben wollen, eine beliebige Datei zu öffnen. Sie können zwischendurch noch eingreifen, bevor sie wirklich geöffnet wird. Das entscheiden Sie nämlich selber.

Excel 2016 VBA Grundkurs

Lassen Sie sich systematisch in die Excel-Programmierung mit Visual Basic for Applications (VBA) einführen.

7 Std. 25 min (66 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Exklusiv für Abo-Kunden
Ihr(e) Trainer:
Erscheinungsdatum:30.08.2016
Laufzeit:7 Std. 25 min (66 Videos)

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!