Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Image
BildScreenshot zu Image Image-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen

Ribbonmenü funkioniert unter Excel2013 nicht.


Betrifft: Ribbonmenü funkioniert unter Excel2013 nicht. von: Kasimir
Geschrieben am: 08.01.2018 09:33:40

Hallo Leute!

In einer Exceldatei wird beim Öffnen ein neues Menü erzeugt. Dieses Menü hat 3 Groups und in 2 Groups jeweils einen Button. Das 3. Group ist genau zwischen den beiden anderen Groups und wird beim Öffnen mit einem Text aus einem Makro gefüllt. Und hier liegt das Problem: Unter Excel 2010 funktioniert das Füllen des 3. Groups mit dem Text. Starte ich die Datei unter Excel 2013, funktioniert das Ganze nicht. Das Group bleibt leer. Nachfolgend die Daten, die im CustomUI.xml und CustomUI14.xml stehen:

CustomUI.xml

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="OnRibbonLoad" loadImage="LoadImages">
<ribbon startFromScratch="false">
<tabs>
<tab id="AddInSetArtikel" label="Artikelbilder einlesen...." getVisible ="GetVisible">

<group id="grpBilderEinlesen" label=" Artikelbilder.... " getVisible ="GetVisible">
<button id="btnBilderEinlesen" size="large" label="Artikelbilder einlesen...." image="PictureInsight_48x48" tag="RibbonName:=;inMenu:=;CustomTagValue1:=;CustomTagValue2:=;CustomTagValue3:=;CustomPicture:=;CustomPicturePath:=" onAction="OnActionButton" getVisible="GetVisible" getEnabled="GetEnabled" />
</group>

<group id="grpLeer" getLabel="GetLabel" >
</group>

<group id="grpInfos" label="Infos...." getVisible ="GetVisible">
<menu id="mnuInfo" size="large" itemSize="large" label="Info...." screentip="Info" supertip="Info" imageMso="Help" tag="RibbonName:=;inMenu:=;CustomTagValue1:=;CustomTagValue2:=;CustomTagValue3:=;CustomPicture:=;CustomPicturePath:=" getVisible="GetVisible" getEnabled="GetEnabled" >
<button id="btnInfo" label="Info..." screentip="Info" supertip="Öffnet Fenster, dass Auskunft über die Programmversion gibt" imageMso="Info" tag="RibbonName:=;inMenu:=mnuInfo;CustomTagValue1:=;CustomTagValue2:=;CustomTagValue3:=;CustomPicture:=;CustomPicturePath:=" onAction="OnActionButton" getVisible="GetVisible" getEnabled="GetEnabled" />
</menu>
</group>

</tab>
</tabs>
</ribbon>
</customUI>

CustomUI14.xml

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="OnRibbonLoad">
<ribbon startFromScratch="false">
<tabs>
<tab id="AddInSetArtikel" label="Artikelbilder einlesen...." getVisible ="GetVisible">

<group id="grpBilderEinlesen" label=" Artikelbilder.... " getVisible ="GetVisible">
<button id="btnBilderEinlesen" size="large" label="Artikelbilder einlesen...." image="PictureInsight_48x48" tag="RibbonName:=;inMenu:=;CustomTagValue1:=;CustomTagValue2:=;CustomTagValue3:=;CustomPicture:=;CustomPicturePath:=" onAction="OnActionButton" getVisible="GetVisible" getEnabled="GetEnabled" />
</group>

<group id="grpLeer" getLabel="GetLabel" >
</group>

<group id="grpInfos" label="Infos...." getVisible ="GetVisible">
<menu id="mnuInfo" size="large" itemSize="large" label="Info...." screentip="Info" supertip="Info" imageMso="Help" tag="RibbonName:=;inMenu:=;CustomTagValue1:=;CustomTagValue2:=;CustomTagValue3:=;CustomPicture:=;CustomPicturePath:=" getVisible="GetVisible" getEnabled="GetEnabled" >
<button id="btnInfo" label="Info..." screentip="Info" supertip="Öffnet Fenster, dass Auskunft über die Programmversion gibt" imageMso="Info" tag="RibbonName:=;inMenu:=mnuInfo;CustomTagValue1:=;CustomTagValue2:=;CustomTagValue3:=;CustomPicture:=;CustomPicturePath:=" onAction="OnActionButton" getVisible="GetVisible" getEnabled="GetEnabled" />
</menu>
</group>

</tab>
</tabs>
</ribbon>
</customUI>

Und nun noch der VBA-Code für das Menü:

Option Explicit
Option Private Module

Public gobjRibbon As IRibbonUI

Public Sub OnRibbonLoad(ribbon As IRibbonUI)
Set gobjRibbon = ribbon

gobjRibbon.ActivateTab "AddInSetArtikel"
End Sub

Public Sub OnActionButton(control As IRibbonControl)

Select Case control.ID
    Case "btnBilderEinlesen"
        Call Bilder_einlesen_Vorabauswahl
    
    Case "btnInfo"
        Call Info_öffnen
End Select
End Sub

Public Sub GetEnabled(control As IRibbonControl, ByRef enabled)
enabled = True
End Sub

Public Sub GetVisible(control As IRibbonControl, ByRef visible)
visible = True
End Sub
Sub GetLabel(control As IRibbonControl, ByRef label)
Select Case control.ID
Case Else
label = " " _
& " " _
& " " _
& " " _
& "Diese Datei lebt seit 2000- " & Year(Now()) & "!"

End Select
End Sub

Hat jemand vielleicht eine Idee, warum das obige unter Excel2010 funktioniert, unter Excel 2013 aber nicht? Das würde mir ein ganzes Stück weiterhelfen.

Danke Euch schon mal bei der Hilfestellung,
Kasimir

PS: Sorry für die Darstellung, habe ich nicht anders hinbekommen!

  

Betrifft: AW: Ribbonmenü funkioniert unter Excel2013 nicht. von: Nepumuk
Geschrieben am: 08.01.2018 10:31:14

Hallo Kasimir,

welchen Text meinst du? Eventuell "Diese Datei lebt seit 2000- 2018!" ???

Der wird bei mir (Excel 2013) angezeigt:



Gruß
Nepumuk


  

Betrifft: AW: Ribbonmenü funkioniert unter Excel2013 nicht. von: Kasimir
Geschrieben am: 08.01.2018 10:38:09

Hallo Nepumuk!

Danke Dir für Deine Antwort. Ja, genau diesen Text meinte ich. Mhm... komisch, bei uns wird das unter Excel 2010 angezeigt, nicht aber bei dem Rechner mit Office 2013 64bit. Oder liegt es eventuell an der 64bit-Version?

Danke nochmal,
Kasimir


  

Betrifft: AW: Ribbonmenü funkioniert unter Excel2013 nicht. von: mumpel
Geschrieben am: 08.01.2018 11:02:21

Hallo!

Könnte durchaus an der 64-bit-Version liegen. Aktiviere in Excel mal die Fehlerprüfung für die "Benutzeroberflächen Add-Ins" (Unter "Erweitert" zu finden".

Gruß, René


  

Betrifft: AW: Ribbonmenü funkioniert unter Excel2013 nicht. von: Kasimir
Geschrieben am: 08.01.2018 11:39:42

Hallo René!

Danke Dir für Deine Antwort. Werde ich nachher mal testen, wenn ich wieder im Bereich bin, in dem der PC steht. Was macht den diese Einstellung? Zeigt mir das dann etwas an?

MfG,
Kasimir


  

Betrifft: AW: Ribbonmenü funkioniert unter Excel2013 nicht. von: mumpel
Geschrieben am: 08.01.2018 11:42:50

Sie zeigt Fehler im RbbonX-Code an. Das kann schon eine Kleinigkeit sein, z.B. etwas was in der 64-bit-Version nicht existiert.


  

Betrifft: AW: Ribbonmenü funkioniert unter Excel2013 nicht. von: Kasimir
Geschrieben am: 08.01.2018 18:11:20

Hallo an Alle!

Also, ich habe nun gefunden, warum bei dem hier verwendeten Excel 2013 64bit der Text in der Group2 nicht angezeigt wird. Allem Anschein nach darf in der 64bit-Version die Group nicht leer sein. Es muss mindestens ein Control in der Group vorhanden sein. Ich habe bei mir ein Label eingefügt und keinen Labeltext vergeben. Somit sieht das Group leer aus, obwohl ein Labelcontrol vorhanden ist und mein Text, der dort angezeigt werden soll, wird nun angezeigt. Lösche ich das Labelcontrol wird die Group und somit auch der Text, nicht mehr angezeigt, es fehlt einfach. Bei der 32bit-Version scheint das anders zu sein, da ja Nepumuk den Text gesehen hat.

Danke nochmal an alle und eventuell hilft meine obige Erkenntnis ja mal jemanden anderen weiter.

Gruß,
Kasimir


  

Betrifft: AW: Ribbonmenü funkioniert unter Excel2013 nicht. von: mumpel
Geschrieben am: 08.01.2018 20:55:31

In der 32-bit-Version darf eine Gruppe eigentlich auch nicht leer sein. Aber irgendwie schafft es Excel-32-bit den Fehler zu kompensieren.