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 für Profis

Passende Dateien finden

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Die Liste ermöglicht optimale Flexibilität, um auf viele verschiedene Zieldateien vorbereitet zu sein.

Transkript

Im Moment sind diese Ziele ja mehr so ein bisschen symbolisch. Es gibt immer nur eine Zwischenablage. Das ist ok. Aber es kann beliebig viele geöffnete Excel-Dateien und auch beliebig viele geschlossene Excel-Dateien geben. Ich werde also erstens die Nummern nach vorne legen, dann lassen sie sich besser verstecken, und zweitens beliebig viele Dateien auch benutzen. Das bedeutet hier im Code, nämlich im "Initialize", dass -- ich fange mal mit dem Teil an -- diese beiden, die kann ich mit der Tab-Taste schon mal einrücken, eine Schleife bilden werden. Der Rest gleich auch. Und das bedeutet: Ich sollte hier schon mal dafür sorgen, dass ich auch abfrage, in welcher Zeile ich bin, also ".ListCount-1". Das gilt genauso, das können wir schon mal kopieren da unten. Das würde jetzt immer noch funktionieren denn, egal wo ich mich gerade befinde: ".ListCount-1" klappt. Aber die Reihenfolge muss noch ausgebessert werden. Also hier ausschneiden dort, ja, da meckert er natürlich, noch dort einfügen und das dahin hängen. Da hat sich die Reihenfolge geändert. Und damit er nicht jedes Mal meckert, werde ich jetzt unter "Extras" "Optionen" hier diese Syntaxüberprüfung ausschalten. Also den ausschneiden. Syntaxüberprüfung findet statt, wie Sie an der roten Farbe sehen, nur dieser Dialog entfällt. Und auch da steht vorübergehend noch das Gleiche nur in einer anderen Reihenfolge drin. Aber sicherheitshalber "Kompilieren" mit F5 ausführen und Sie sehen, die stehen jetzt vorne. Da könnte man die Spaltenbreite gelegentlich schmaler machen. Jetzt kommen mehrere geöffnete Excel-Dateien. Ich werde schon mal zeigen, dass ich bereits welche geöffnet habe. Sie sehen also hier, es sind insgesamt drei Dateien offen, die ich gleich sehen möchte. Und zwar an dieser Stelle, wo ich schon eingerückt habe, da brauche ich jetzt eine Schleife über alle. Ich kann also direkt hier schon mal einen Schleifenzähler machen. "Dim intZaehler As Integer". Mit Integer werde ich auskommen. 32,000 geöffnete Dateien, das wird nichts werden. Also "For intZaehler=1" die Workbooks haben eine 1-basierte Auflistung, "To" und jetzt frage ich den, der Ahnung hat, nämlich die Workbooks-Auflistung, deren "Count"-Eigenschaft. Und das "Next" sollte man nicht vergessen. Und da soll natürlich nicht einfach "geöffnete Excel-Datei" stehen, sondern genau diese. Also mit "Workbooks(intZaehler).Name" Das ist, -- wir können das ruhig ein bisschen abheben, dann ist es vielleicht besser zu sehen -- das ist jetzt die Liste aller geöffneten Dateien. Wenn das "Kompilieren" zufrieden ist, können wir mit F5 gucken. Da sehen Sie 1, 2, 3 geöffnete Dateien. Und wenn ich, jetzt nur testweise, noch eine zusätzliche aufmache, das darf überhaupt kein Problem geben. Also hier einfach mit "Datei" "Neu" und den Dialog mit F5 noch einmal starten. Da ist ein Fehler drin, der ganz hinterhältig von einer ganz anderen Seite kommt. Nämlich die "Names"-Auflistung, die ja angeblich an dem "Application"-Objekt hängt. Das tut sie aber nicht wirklich. Denn, weil unsere eigene Programmierdatei nicht offen ist, ich habe ja gerade eine neue Mappe aufgemacht, fällt das Macro hier auf die Nase, und zwar ohne vernünftige Fehlermeldung. Also, ich werde hier erst einmal dafür sorgen, dass die Datei in der der Code steht, "ThisWorkbook", auch aktiv wird. Also mit "Activate". Das ist etwas ärgerlich hier an dieser Stelle. Ein Fehler, der eigentlich mit "ActiveWorkbook" nichts zu tun hat und trotzdem hier auftritt. Jetzt können Sie mit F5 das Ganze wieder laufen lassen. Es ist also egal, was gerade aktiv ist und trotzdem kann er es nur abfragen, wenn an der Stelle das "Application"-Objekt auf "ActiveWorkbook" zugreifen kann. Also, ich habe hier jetzt die neue Mappe mit drin und wir können uns jetzt um die geschlossenen Dateien kümmern. Die geschlossenen Dateien habe ich jetzt der Einfachheit halber in ein Unterverzeichnis dieser Datei untergebracht. Also auch hier können wir schon mal einrücken und ich werde jetzt hier alle Dateien aus diesem Unterverzeichnis abfragen. Dazu brauchen wir eine Stream-Variable. Die mach ich mal da oben dazwischen "dim strDatei as String" und dann wieder nach unten. Nämlich zuerst abfragen "strDatei" mit "Dir", mit dem Befehl den ich erst einmal "(ThisWorkbook)" ausdrücklich diese Datei mit dem Code übergebe und den "Path", damit bin ich im gleichen Pfad wie diese Datei, verkettet mit einem String mit dem Backslash, denn da steht normalerweise keiner am Ende, und dann hatte ich ein Unterverzeichnis "Beispiele" eingelegt und darin suche ich alle Dateien. Wir können vielleicht sauberer sagen alle "xls" irgendwas, "xlsx", "xlsm" und so weiter. Und wenn es darin eine gibt, dann kann ich eine "Do-Loop Schleife" machen. "Do Until strDatei =" ", mach, solange es darin welche gibt, und "Loop". Und ich will natürlich hier nicht das Word "geschlossene Excel-Datei" lesen, sondern den Namen, den ich gerade gefunden habe, der also in strDatei steht. Damit ich sicher bin, wo sie überhaupt zu finden ist, dann kann man sie auch besser unterscheiden, -- das können wir von da oben herunterkopieren -- will ich diesen Pfad davor schreiben. Also so, Gänsefüßchen zu verkettet mit dem Namen der Datei. Das könnte vor allem ein Platzproblem werden oder dass ich mich in dem Pfadnamen verschrieben habe. Wir probieren das einfach mal mit F5. Da habe ich eine Endlosschleife, also mit Steuerung unterbrechen. Die Zeit dauert viel zu lange, denn ich hab hier natürlich vergessen mit "strDatei = Dir" erneut die nächste Datei abzufragen. Also ein neuer Anlauf, F5 und da sehen Sie, es stehen in diesem Pfad relativ viele Dateien, die jetzt alle brav angezeigt werden. Der Dateityp hier lässt sich unterscheiden. Also insgesamt mit relativ wenig Aufwand, -- das wird gelegentlich noch versteckt -- eine beliebige Auswahl an Zielen. Und beim "OK" kann ich hier feststellen, welche Art das Ziel ist.

Excel 2016 VBA für Profis

Nutzen Sie die Möglichkeiten der Programmiersprache VBA in Excel 2016, um eigene Dialoge zu erstellen, auf andere Arbeitsmappen zuzugreifen und wichtige Funktionen einzusetzen.

5 Std. 52 min (55 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:25.01.2017

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!