Hallo Dennis,
freut mich, dass mein Entwurf gut angekommen ist.
Die Fehlermeldung Die Variable myRibbon hat den Inhalt verloren. Bitte Speichern und schließe die Arbeitsmappe und öffne diese erneut. Danach kann der zuletzt ausgeführte Befehl erfolgreich ausgeführt werden. wird nur dann angezeigt, wenn im VBA-Editor gearbeitet wird. Hierbei ist es unabhängig, in welcher Arbeitsmappe man gerade im VBA-Editor am Werken ist.
Hintergrundinfos:
Beim Laden der Arbeitsmappe wird ein Ereignis OnLoad von Excel aufgerufen, da es in der XML-Datei so definiert wurde.
Nur bei diesem Ereignis wird eine IRibbonUI-Wert übergeben. Mit diesem Wert kann man von VBA aus auf die eigenen Controls in Ribbon zugreifen.
Wenn im VBA-Editor in irgend einer Arbeitsmappe eine Änderung vorgenommen wird, passiert es oft, dass sämtliche Variable-Werte verloren gehen.
Wenn ich die obige Meldung nicht angezeigt hätte, würde sich der Anwender wundern, weshalb die Controls in der Maske nicht mehr so funktionieren, wie es ursprünglich vorgesehen ist.
Normalerweise ist es ausreichend, wenn die Arbeitsmappe kurz geschlossen und wieder geöffnet wird.
Hierfür gibt es auch leider kein Verfahren, um den Wert der Ribbon-Variable zu speichern und bei Bedarf wieder herstellen zu können.
Die einzigste Alternative wäre, den VBA-Code durch VB.net zu ersetzen. Hierfür braucht man allerdings die Software"Visual Studio". In Visual Studio hat man noch weit mehr Möglichkeiten, als in VBA. Aber man braucht auch mehr Zeit, um sich in die Materie einarbeiten zu können.
--------------------
Mir persönlich gefiel es noch nicht, dass in der Maske lediglich immer alle verfügbaren Tabellen aufgelistet werden.
In der erweiterten Version hat der Benutzer die Möglichkeit, die Tabellen auszuwählen, für die eine PDF-Datei erstellt werden soll.
Anstelle von Checkboxen könnte man auch Umschaltbuttons verwenden.
Zusätzlich werden auch ausgeblendete Tabellen als solches markiert.
Mit der Konstante DisplayHiddenWorksheets kann im Modul modRibbons festgelegt werden, ob ausgeblendete Tabellen in der Maske angezeigt werden sollen, oder nicht.
LG, BigBen
|