Ich möchte mich noch bei bei euch, Rene und Karl-Heinz, bedanken.
Mit euren Hilfen konnte ich mein Problem mit der EditBox (Ribbon Editbox o. Label per VBA ändern) löschen.
@ KH: Das Code mit dem RefreshRibbon - genial. Vielen herzlichen Dank.
Jetzt hänge ich an folgenden Problem fest:
Der RibbonCode wird primär über ein AddIn geladen.
Alle Aufrufen wie Bearbeiten von Daten / Einbinden von externen Daten / öffnen von 3.Dateien geht ohne Probleme.
Da ich aber die ganze Entwicklung in einer xlsm mache und dann nur per Code hin und wieder das AddIn wegschreibe falle ich jetzt beim Aufruf einer Exceldatei
Aufruf über
If Right(strFile, 3) = "csv" Then
Workbooks.Open Filename:=sPfad & "\" & strFile, Local:=True, delimiter:=";"
Else
Workbooks.Open Filename:=sPfad & "\" & strFile ', Local:=True
End if
über folgenden Fehler: Dieser tritt nicht auf, wenn ich den Code über das AddIn öffne, nur wenn ich es aus der xlsm aufrufen. Beim Öffnen der Datei kommt
- "Das Makro 'GetVisible' kann nicht ausgeführt werden. Das Makro ist möglicherweise in dieser Arbeitsmappe nicht verfügbar oder alle Makros wurden deaktiviert"
und anschliessend
- "Das Makro 'GetEnabled' kann nicht ausgeführt werden. Das Makro ist möglicherweise in dieser Arbeitsmappe nicht verfügbar oder alle Makros wurden deaktiviert"
Und das geht abwechselt so lang, bis in meiner Datei, über das den Code gestartet habe, sämtliche eigenen Ribbons weg sind.
Aus meinem Verständnis heraus versucht ein Event o.ä. die beiden Makros, die Teil meiner Ribbons sind (aufgerufen über)
Public Sub OnRibbonLoad(lpRibbon As IRibbonUI)
Set gobjRibbon = lpRibbon 'globalen Pointer setzen und in einem Namen sichern
ThisWorkbook.Names.Add Name:="MyRibbon", _
RefersTo:=CStr(ObjPtr(lpRibbon)), Visible:=False
End Sub
GetVisible und GetEnabled aufzurufen. Das geht aber nicht, da die ja nicht das sind.
Hat jemand ne Idee, wie ich verhindern kann, das die Fehlermeldung aufpoppt und mir die Ribbons in meine Datei rausfliegen?
Ich hatte die Idee, das kontrolliert wird, ob es sich um die xlsm oder das AddIn handelt und das "was" gemacht wird oder eben nicht.
Aber da bin ich auch gescheitert.
Gruß Markus