Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Application.CommandBars("Worksheet Menu Bar").Enab

Forumthread: Application.CommandBars("Worksheet Menu Bar").Enab

Application.CommandBars("Worksheet Menu Bar").Enab
14.08.2002 12:55:44
RainerL
Hallo Forum,

ich starte Excel, es öffnet sich Workbook "Mappe1" mit drei Tabellen, Tabelle 1, Tabelle 2, Tabelle 3.Dann Alt +F11. Wenn ich folgenden Code in DieserArbeitsmappe einfüge erreiche ich das gewünschte Ergebnis, die Menü Arbeitsleiste wird nicht angezeigt, bei allen drei Tabellen.

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Application.CommandBars("Worksheet Menu Bar").Enabled = False
End Sub

Schreibe ich diesen Code jedoch nicht in DieserArbeitsmappe, sondern in Tabelle1 ein, damit nur, wenn Tabelle1 aktiviert wird, die Menü Arbeitsleiste nicht angezeigt wird, dann passiert nichts.

Wie erreiche ich, daß nur bei bestimmten Tabellen die Menü Arbeitsleitse nicht angezeigt wird ?

Rainer



Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Application.CommandBars("Worksheet Menu Bar").Enab
14.08.2002 13:23:57
Herbert
dann mußt du in so schreiben:

Private Sub Worksheet_Activate()
Application.CommandBars("Worksheet Menu Bar").Enabled = False
End Sub

gruß herbert

Re: Application.CommandBars("Worksheet Menu Bar").Enab
14.08.2002 14:27:49
RainerL
Hallo Herbert,

mit Deinem Code funktioniert es gut. Vielen Dank. Mir ist nicht klar warum:
"Private Sub Worksheet_Activate()"
funktioniert, nicht jedoch:
"Private Sub Workbook_SheetActivate(ByVal Sh As Object)"

Rainer

Anzeige
Re: Application.CommandBars("Worksheet Menu Bar").Enab
14.08.2002 14:33:45
Herbert
"Private Sub Workbook_SheetActivate(ByVal Sh As Object)"
funktioniert auch,nur mußt du es ins modul "Diese Arbeitsmappe" geben..
Re: Application.CommandBars("Worksheet Menu Bar").Enab
14.08.2002 16:19:01
RainerL
Hallo Herbert,

mit Deinem Code funktioniert es gut. Vielen Dank. Mir ist nicht klar warum:
"Private Sub Worksheet_Activate()"
funktioniert, nicht jedoch:
"Private Sub Workbook_SheetActivate(ByVal Sh As Object)"

Rainer

Anzeige
Re: Application.CommandBars("Worksheet Menu Bar").Enab
14.08.2002 16:49:51
Rainer
Hallo Herbert,

diese Erfahrung habe ich auch gemacht.Ich habe nur nicht verstanden warum "Private Sub Workbook_SheetActivate(ByVal Sh As Object)" nur im Modul "DieseArbeitsmappe" funktioniert.

Vielen Dank für Deine Hilfe.
Rainer

;
Anzeige

Infobox / Tutorial

Anwendung der CommandBars in Excel VBA


Schritt-für-Schritt-Anleitung

Um die worksheet menu bar in Excel VBA ein- oder auszublenden, kannst du den folgenden Code verwenden. Dieser zeigt, wie du das Menü in bestimmten Tabellen deaktivieren kannst.

  1. Öffne den Visual Basic for Applications (VBA) Editor:

    • Starte Excel und öffne die gewünschte Arbeitsmappe.
    • Drücke Alt + F11, um den VBA-Editor zu öffnen.
  2. Füge den Code in das richtige Modul ein:

    • Wenn du den Code für alle Tabellen anwenden möchtest, füge diesen in das Modul „Diese Arbeitsmappe“ ein:
      Private Sub Workbook_SheetActivate(ByVal Sh As Object)
       Application.CommandBars("Worksheet Menu Bar").Enabled = False
      End Sub
    • Für spezifische Tabellen, füge den Code in das entsprechende Tabellenmodul ein:
      Private Sub Worksheet_Activate()
       Application.CommandBars("Worksheet Menu Bar").Enabled = False
      End Sub
  3. Speichere und schließe den VBA-Editor.

  4. Teste das Verhalten:

    • Wechsle zwischen den Tabellen und beobachte, ob die worksheet menu bar wie gewünscht ein- oder ausgeblendet wird.

Häufige Fehler und Lösungen

  • Fehler: Die Menüleiste wird nicht deaktiviert.

    • Lösung: Stelle sicher, dass der Code im richtigen Modul platziert ist. Der Code für Workbook_SheetActivate muss in „Diese Arbeitsmappe“ sein, während Worksheet_Activate in das spezifische Tabellenmodul gehört.
  • Fehler: Der Code wird nicht ausgeführt.

    • Lösung: Überprüfe, ob Makros in Excel aktiviert sind. Gehe zu „Datei“ > „Optionen“ > „Trust Center“ > „Einstellungen für das Trust Center“ > „Makroeinstellungen“ und aktiviere die Makros.

Alternative Methoden

Es gibt verschiedene Ansätze, um die excel commandbars zu steuern. Eine Alternative ist die Verwendung von Schaltflächen oder Menüs:

  • Benutzerdefinierte Menüs: Du kannst eigene Menüs erstellen, die die Standardmenüs ersetzen. Dies erfordert jedoch mehr Programmieraufwand.
  • Formularsteuerelemente: Statt die Menüleiste zu deaktivieren, kannst du auch Formularsteuerelemente verwenden, um Benutzerinteraktionen zu steuern.

Praktische Beispiele

Hier sind einige praktische Anwendungsbeispiele für die Verwendung von application.commandbars in deiner Excel VBA-Programmierung:

  1. Deaktivieren der Menüleiste nur für Tabelle1:

    Private Sub Worksheet_Activate()
       If Me.Name = "Tabelle1" Then
           Application.CommandBars("Worksheet Menu Bar").Enabled = False
       End If
    End Sub
  2. Aktivieren der Menüleiste, wenn eine andere Tabelle aktiviert wird:

    Private Sub Worksheet_Deactivate()
       Application.CommandBars("Worksheet Menu Bar").Enabled = True
    End Sub

Tipps für Profis

  • Experimentiere mit Application.CommandBars und finde heraus, welche anderen Menüs und Steuerelemente du anpassen kannst.
  • Nutze Error Handling in deinem VBA-Code, um sicherzustellen, dass dein Programm auch bei unerwarteten Fehlern stabil bleibt.
  • Halte deinen Code modular, indem du Funktionen erstellst, die wiederverwendet werden können. Dies erhöht die Lesbarkeit und Wartbarkeit deines Codes.

FAQ: Häufige Fragen

1. Warum funktioniert Private Sub Workbook_SheetActivate(ByVal Sh As Object) nicht in einem Tabellenmodul? Die Methode Workbook_SheetActivate ist auf das Modul „Diese Arbeitsmappe“ beschränkt und funktioniert nur dort. Für Tabellenmodule musst du Worksheet_Activate verwenden.

2. Wie kann ich die Menüleiste wieder aktivieren? Um die Menüleiste wieder zu aktivieren, setze Application.CommandBars("Worksheet Menu Bar").Enabled = True in das entsprechende Modul. Dies kann in der Worksheet_Deactivate-Methode erfolgen, um die Menüleiste zu reaktivieren, wenn der Benutzer die Tabelle verlässt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige