Excel 2016 VBA für Profis

Schaltfläche

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Schaltflächen sind innerhalb der Tabelle viel einfacher zu erstellen als im Menüband und lassen sich zum Aufruf beliebigen Codes nutzen.

Transkript

Jetzt ist der Dialog zwar inhaltlich komplett fertig, der kann jetzt alles, was so ein typischer Dialog braucht, aber es kann nicht sein, dass er auf Dauer hier durch Reinklicken mit F5 aufgerufen werden soll. Das ist für Benutzer unzumutbar. Sie möchten gar nicht, dass sie in den Code überhaupt reingucken. Deswegen brauche ich eine Alternative, der Aufruf mit F5 ist ja immer nur so die Entwicklerversion. Um einen Dialog aufzurufen, braucht es einen einzigen Befehl, aber eben nicht in einem Formularmodul selber, schon gar nicht im eigenen Dialog, sondern in einem Standardmodul, ich mache das aber nicht im normalen, sondern lege mir ein neues Modul an. Das nenne ich meinetwegen "modAllgemein", und da drin braucht es eine Prozedur, eine ganz normale Sub Procedure, und die heißt bei mir klassischerweise "Zeige", zeige irgendwas, zeige in diesem Fall das Testformular oder zeige Optionen oder sonst was, also ich nenne das jetzt hier "ZeigeTest", und die einzige Prozedur, die ich brauche, ist der Name des Formulars, also "dlg", Strg+Leertaste, dann kriege ich -- weil eindeutig -- den Rest angeboten, und Punkt, die Methode "Show". Das war's schon. Ich kann also hier speichern. Das klingt jetzt ein bisschen albern, als ob ich das Gleiche machen würde, und jetzt diese Prozedur mit F5 starten. Sie haben Recht, eben habe ich den Dialog angeklickt und mit F5 gestartet, und jetzt starte ich diese Prozedur mit F5, wo ist der Fortschritt? Das werden Sie gleich sehen, erstmal nur als Beweis, wenn ich das mit F5 starte, erscheint der Dialog. Der Fortschritt besteht darin, dass ich eine solche Prozedur aufrufen kann und zwar mit verschiedenen Methoden. Jetzt kommt wieder die normale Tabellenansicht. Es gibt zwei verschiedene Möglichkeiten, eigentlich haben Sie recht, gehört das Ganze ins Ribbon. Ein Aufruf einer Prozedur gehört ins Ribbon und nicht an die Stelle, wo ich es gleich hinschreiben werde, aber es ist ein bisschen, sagen wir, lästig, da müssen Sie nämlich eine Menge organisieren. Ich zeige Ihnen erstmal, wie es grundsätzlich funktionieren würde, irgendwo im Ribbon einen Rechtsklick, und ich werde ein neues Register hinzufügen, also "Menüband anpassen", und dann werde ich hier zusätzlich eine neue Registerkarte anlegen, aber die Registerkarte, da muss man immer aufpassen, weil schon die Gruppe markiert ist, die werde ich umbenennen, die heißt ganz lieblos "Test". Die Gruppe nennen wir dann vielleicht mal "Dialoge". Das Bild, was Sie hier oben auswählen, ist relativ uninteressant, das wird erst dann wichtig, wenn der Bildschirm so schmal wird, dass die gesamte Gruppe zusammengeschoben wird, also wir können das relativ lieblos -- nehmen wir irgend sowas hier -- aussuchen. Und innerhalb dieser Gruppe, eine Gruppe ist, wenn ich das mal eben zusammenschiebe, hier so ein ganzer Block, der unten jetzt so beschriftet ist, innerhalb dieser Gruppe hätte ich jetzt gern mein Makro, und das gibt es freundlicherweise hier zur Auswahl, und zwar nur die öffentlichen Prozeduren, deswegen konnte ich den Dialog nicht direkt aufrufen, aber seine Prozedur, die ihn aufruft, die kann ich hier nutzen. Und die werd ich jetzt also hier hinzufügen, die kriegt automatisch dieses Symbol, das könnte ich jetzt umbenennen und ein anderes Symbol auswählen, ich kann das ja mal machen, damit es ein klein bisschen hübscher wird, also sagen wir, das sei symbolisch für meinen Dialog, und dann können wir es hier noch umbenennen: "Zeige Test-Dialog". Ich habe also hier eine neue Registerkarte, eine neue Gruppe und da drin mein Makro aufgerufen, und, das können Sie übrigens auch in Dateien exportieren für andere Rechner, und bestätige das mit "OK". Dann habe ich jetzt hier meine neue Registerkarte, meine neue Gruppe und meinen Makroaufruf. Wenn ich jetzt hier mal irgendwas markiere, funktioniert wunderbar, ein Klick hier, mein Dialog erscheint, ich kann auch die Zellen anzeigen, alles in Ordnung. Die gute Nachricht ist, das lässt sich einfach erstellen, die schlechte Nachricht ist, und das ist meine Kritik daran, dieser Befehl erscheint immer und zwar auch dann, wenn diese Datei gar nicht geöffnet wird. Dann haben Sie ein Problem, weil Sie ein Makro aufrufen, was zu einer Fehlermeldung führt, weil nämlich der dahinterliegende Code fehlt. Um dafür zu sorgen, dass dieser Button nur erscheint, wenn auch diese Datei geöffnet wird, haben Sie einiges an Programmierung vor sich, genauer gesagt müssen Sie mit dem Custom UI Editor, einem externen Programm, einen XML-Code erzeugen, der in dieser Datei dafür sorgt, dass nur dann diese Programmierung oder diese Schaltfläche erscheint. Das ist ein erheblicher Aufwand, deswegen würde ich Ihnen der Einfachheit halber die andere Variante empfehlen, Sie machen die Schaltfläche irgendwo in diese Datei. Häufig ist es nämlich so, dass eine Schaltfläche sich auf exakt die Daten einer einzigen Tabelle in der Datei bezieht. Und dann ist es bequem, auch die Tabelle direkt mit dieser Schaltfläche auszustatten. Das ist die zweite Variante, dafür braucht es die Entwickler-Tools, und hier beim "Einfügen" nehme ich die "Formularsteuerelemente", die eigentlich für User Forms gedacht sind -- die, die wir gerade erstellt haben -- aber auch in einer Tabelle funktionieren. Ein Klick hier, jetzt werde ich nicht einfach so die Maus aufziehen, das macht eine beliebige -- ich mach das einmal eben -- eine beliebige Schaltfläche in aller Hässlichkeit, kann ich direkt abbrechen und so, wie sie markiert ist, entfernen. Ich werde stattdessen, wenn ich das nochmal mache, mit gedrückter Alt-Taste das Ganze malen und Sie merken, dann rastet die Größe der Schaltfläche direkt ein. Erst die Maus loslassen, dann die Alt-Taste. Und jetzt kann ich hier direkt die durchaus hässliche Bezeichnung, sogar mit Umlaut, "Schaltfläche3_Klicken" benutzen, das funktioniert, das ist von Excel automatisch so benannt. Gehen Sie direkt auf "Neu", dann gibt es hier ein neues Modul, in dem diese Prozedur mit diesem reservierten Namen, den dürfen Sie nicht ändern, so enthalten ist. Und da kann ich jetzt entweder "dlgTest.Show" nochmal schreiben und den anderen Befehl ignorieren, oder ich rufe von hier aus meine "ZeigeTest"-Prozedur auf, die ja intern auch nur den Dialog aufruft. Das kommt drauf an, ob Sie die von verschiedenen Stellen aus aufrufen, dann diese Fassung, oder ob "ZeigeTest" eigentlich überflüssig ist und ich den direkten Dialog aufrufen kann. Und nach dem Speichern habe ich jetzt den Vorteil, dass die Schaltfläche in dieser Tabelle erscheint, und wenn die Tabelle nicht da ist und die Datei, dann ist auch das Makro gar nicht aufrufbar. Noch ist die Schaltfläche markiert, ich kann also hier einfach hingehen und nach Belieben ändern. Ich lasse das mal eben so, sobald ich außerhalb klicke, ist die Schaltfläche aktiv. Dann sollte ich natürlich hier was markieren, ein Klick drauf und es funktioniert. Wenn ich das noch nachbessern will, Sie sehen hier, die aktive Hand zeigt: "Achtung, gefährlich, der löst aus", wenn Sie einen Rechtsklick machen, kriegen Sie ein Popup-Menü, was ich mit "Esc" sofort wegschmeiße, das will ich gar nicht haben, aber dann ist hier markiert. Ich kann jetzt also hier schön ändern, was immer ich reinschreiben will, zum Beispiel "Test-Dialog..." und wenn man sowas anzeigt, gehören Sich eigentlich drei Pünktchen, aber nicht mit Return bestätigen, sondern außerhalb klicken und dann ist es wieder aktiv. Achten Sie mal drauf, durch das Außerhalb-Klicken ändert man sich seine Markierung, also so funktioniert es wieder. Die theoretisch bessere Möglichkeit ist also eine Änderung im Menüband, im Ribbon. Die ist wunderschön und funktioniert überall und das ist genau Ihr Problem, sie funktioniert auch dann, wenn die Datei, die Sie brauchen, gar nicht offen ist. Und die einfachere Lösung ist hier, eine Schaltfläche einfach mitten in die Tabelle zu legen, und die kann man sich mit gedrückter Alt-Taste beim Größen-Verändern sehr schön in das Raster einfügen, das geht auch nachträglich; nach Rechtsklick und "Esc" kann ich jetzt Alt-Taste gedrückt halten und das nochmal anpassen.

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:
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!