Anzeige
Archiv - Navigation
1356to1360
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

XLA-Menü-Fehler

XLA-Menü-Fehler
17.04.2014 16:32:04
HaWe
Liebe VBA-/Excel-Profis,
habe mal wieder ein Problem mit XLA-Dateien (alles Add-ins, die ca. 2004-2006 entwickelt wurden), die alle schon einmal unter Exxcel 2010 gelaufen sind:
Das Problem besteht mit dem Befehl zum Löschen einer Menüleiste - dieses Problem ist in allen Add-Ins vorhanden, der Befehl menu.Controls("&FaceIdViewer").Delete im folgenden Code verursacht den Fehler "Laufzeitfehler 5: Ungültiger Prozeduraufruf oder ...."
Es ist auch in anderen Add-Ins so, dass der Versuch, eine Menüleiste zu löschen (egal unter welchem Namen), immer diesen Fehler produziert. Der Fehler tritt schon beim ersten Start auf, wenn die Menüleiste noch gar nicht existiert.
Andere Benutzer-Menüs sind schon vorhanden.
Die jetzt fehlerhaft laufenden Add-Ins haben alle schon einmal funktioniert.
Sub delete_from_menu()
Dim menu As CommandBarPopup
Dim cbarbutton As CommandBarButton
On Error Resume Next
Set menu = CommandBars("Worksheet Menu Bar").FindControl(Type:=msoControlPopup, ID:=30007) ' _
find Tools menu
menu.Controls("&FaceIdViewer").Delete
Set menu = CommandBars("Worksheet Menu Bar").Controls(1) 'in case no Tools menu delete from  _
first menu
menu.Controls("&FaceIdViewer").Delete
On Error GoTo 0
End Sub

Habt Ihr einen Tip, wo ich "schrauben" muss, damit das wieder geht?
Danke und Gruß
Hans-Werner

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: XLA-Menü-Fehler
17.04.2014 17:24:46
mumpel
Hallo!
Es gibt keine Symbolleisten mehr seit Office 2007, als auch keine "Worksheet Menu Bar". Daher kannst Du aus dem Menüband nichts herauslöschen. RibbonX-Workshop, da kannst Du nachlesen wie man das Menüband beeinflussen und anpassen kann.
Gruß, René

AW: XLA-Menü-Fehler
17.04.2014 22:07:57
HaWe
Hallo René,
danke für den Hinweis.
Mein Gegenhinweis, der mich sehr wundert: Unter Windows 7 (32-bit) und Excel 2010 (32-bit) funktionieren diese AddIns einwandfrei. Probleme gibt es unter Windows 7 (64bit) mit Excel 2010 (64bit). Woher kommt das? Gibt es Befehle/Parameter, die unter 64bit zu ergänzen/ändern wären? - Vergleichsweise "SafePtr" bei den Declare-Anweisungen, die ja unter 64-bit auch nicht ohne die Ergänzung "SafePtr" laufen?
Gruß
Hans-Werner

Anzeige
AW: XLA-Menü-Fehler
17.04.2014 23:32:19
mumpel
Bei 64-bit ist das eigentlich normal. Die 64-bit-Version ist überflüssig wie ein Kropf, sogar Microsoft selber rät zur 32-bit-Version von Office (auch unter Windows 64-bit). Ich kann unter 64-Bit-Office nicht testen, da ich es nicht habe (und nie haben werde).
Mal davon abgesehen, weshalb schipperst Du noch immer mit einem alten Kahn (den alten Symbolleisten-Add-Ins) auf dem Office-See umher? ;) Auf RibbonX umstellen sollte alle Probleme lösen.

AW: XLA-Menü-Fehler
18.04.2014 08:36:00
Martin
Hallo Hans-Werner,
so ganz korrekt ist die Auskunft von mumpel nicht. Es ist zwar richtig, dass die "Worksheet Menu Bar" durch RibbonX abgelöst wurde. Trotzdem wird die "Worksheet Menu Bar" aus Kompatibilitätsgründen weiterhin unterstützt. Jedoch stimmt mumpels Aussage, dass sogar Microsoft bei Excel von der 64Bit-Version abrät und die 32Bit-Version empfiehlt. Auch wenn du ein 64Bit-Betriebssystem verwendest, wird darunter 32Bit-Software unterstützt. Du kannst also Excel in der 32Bit-Version unter Windows 7 in der 64Bit-Version installieren. Vielleicht löst das ja schon dein Problem.
Trotzdem will ich wenigstens mal einen Versuch starten das Makro umzuschreiben. Wenn ich den Inhalt richtig nachvollziehe, soll im Menü "Extras" der Eintrag "FaceIdViewer" entfernt werden. Ich bin kein Freund von "On Error Resume Next"-Anweisungen, daher prüfe ich lieber das Vorhandensein des Eintrags. Ich hoffe, dass folgendes ungetestetes Makro funktioniert:
Sub delete_from_menu()
Dim menu As CommandBarPopup, ctrCmb As CommandBarControl
Dim cbarbutton As CommandBarButton
Set menu = CommandBars("Worksheet Menu Bar").FindControl(Type:=msoControlPopup, ID:=30007)
If Not menu Is Nothing Then
For Each ctrCmb In menu
If ctrCmb.Caption = "&FaceIdViewer" Then ctrCmb.Delete
Next
End If
End Sub
Viele Grüße
Martin

Anzeige
AW: XLA-Menü-Fehler
18.04.2014 08:56:45
Martin
Hallo Hans-Werner,
ich habe gerade festgestellt, dass dein gepostetes Makro etwas widersprüchlich ist. Der Eintrag "FaceIdViewer" soll sowohl im Menü "Extras" also auch im Menü "Datei" gelöscht werden. Das verwundert mich etwas, deshalb lasse jetzt einfach alle Menüs nach dem Eintrag "FaceIdViewer" durchsuchen:
Sub delete_from_menu()
Dim menu As CommandBarPopup, ctrCmb As CommandBarControl
Dim cbarbutton As CommandBarButton
For Each menu In CommandBars("Worksheet Menu Bar").Controls
For Each ctrCmb In menu.Controls
If ctrCmb.Caption = "&FaceIdViewer" Then ctrCmb.Delete
Next
Next
End Sub
Viele Grüße
Martin

Anzeige
AW: XLA-Menü-Fehler
18.04.2014 10:08:22
mumpel
Das Problem ist das es das Menü "Datei" in Office 2010 nicht gibt. Das Menüband kann nämlich nicht per VBA beeinflusst werden. Entfernen kann man doch nur etwas wenn man es vorher dort rein gebracht hat.

AW: XLA-Menü-Fehler
18.04.2014 12:25:19
Martin
Hallo Mumpel,
jetzt schäme ich mich aber wirklich, was für ein blöder Denkfehler von mir. Da ich selbst noch hauptsächlich mit Excel 2003 arbeite, habe ich daran einfach nicht gedacht. Im AddIn-Reiter werden selbstverständlich nur per VBA angelegte Menüs angezeigt. Zumindest dürfte mein Makro keinen Fehler verursachen, weil das "Excel-Menü" zwar nicht angezeigt wird, aber dennoch vorhanden ist. Mit meinem Makro sollte also eine Abwärtskompatibilität zu älteren Excel-Versionen gewährleistet sein.
Viele Grüße
Martin

Anzeige
AW: XLA-Menü-Fehler
23.04.2014 21:39:49
mumpel
Zur Info:
Im Backstage-View können auch Menüs aus Office 2007 erscheinen, in einem eigenen Control "Add-Ins", da das Office-Menü aus Office 2007 in Office 2010-2013 durch das Backstage-View abgelöst wurde und die Office-Menu-Ebene somit nicht mehr so funktioniert wie noch unter Office 2007.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige