Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA: Rechtsklick-Menü

Forumthread: VBA: Rechtsklick-Menü

VBA: Rechtsklick-Menü
22.09.2005 09:46:46
Alexander
Hallo Leuts.
Neuer Tag, neues Problem:
Ich möchte die Möglichleiten meiner Anwender einschränken, darf mein Blatt aber nicht schützen.
Mein Ziel ist es, wenn der Anwender außerhalb eines zulässigen Bereichs ist, dass er dann werder Zellen einfügen noch löschen kann. Die Einträge im Menü "Einfügen" habe ich auf diese Art schon aktiviert/deaktiviert.
Was mir zu meinem Glück noch fehlt sind die Einträge "Zellen..." und "Zellen löschen" im Kontext-Menü (Rechtsklick-Menü).
Dazu meine Frage: Kommt man irgendwie aus dem Code heraus an dieses Menü dran? Die VBA-Hilfe gibt dazu (wie üblich) nichts her.
Ich hoffe ihr könnt mir helfen. Auf jeden Fall Danke für alle Antworten!
Gruß, Alex.
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Rechtsklick-Menü
22.09.2005 09:55:16
Andi
Hi,
folgendes ins Modul des Tabellenblattes, dann kann das Kontextmenü nur noch im Bereich A1 bis B20 aufgerufen werden.

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, [A1:B20]) Is Nothing Then Exit Sub
Cancel = True
End Sub

Schönen Gruß,
Andi
Anzeige
AW: VBA: Rechtsklick-Menü
22.09.2005 10:02:38
Alexander
Hallo Andi.
Die Lösung hatte ich auch schon, aber das kann ich nicht machen. In dem Bereich in dem nicht eingefügt und gelöscht werden darf, stehen auch Daten, die der Anwender durchaus kopieren möchte und viele tun das über das Rechtsklick-Menü, also kann ich es nicht pauschal wegnehmen.
Gruß, Alex.
Anzeige
AW: VBA: Rechtsklick-Menü
22.09.2005 11:04:34
Andi
Hm,
sorry, hab a bisserl rumprobiert, aber leider keine vernünftige Lösung zustande gebracht; und jetz hab ich im Augenblick leider keine Zeit, mich noch länger damit zu beschäftigen...
Ein, zugegebenermaßen nicht wirklich elegantes, workaround wäre, in meinen Code eine Medldung einzubauen, dass der user, wenn er es denn beabsichtigt, doch bitte per Ctrl+C kopieren möge...
Schönen Gruß,
Andi
Anzeige
AW: VBA: Rechtsklick-Menü
22.09.2005 11:22:19
Alexander
Ich werd's schon noch irgendwie hinkriegen.
Trotzdem Danke!
AW: VBA: Rechtsklick-Menü
22.09.2005 09:58:15
ANdreas
Hallo Alex,
und was machst Du wenn jemand mit Tastatur arbeitet?
vielleicht hilft Dir auch schon weiter, beim Öffnen die ScrollArea für das Tabellenblatt auf den zulässigen Bereich einzuschränken.

Private Sub Workbook_Open()
Worksheets("Tabelle1").ScrollArea = "A1:C20"
End Sub

Gruß
Andreas
Anzeige
AW: VBA: Rechtsklick-Menü
26.09.2005 21:02:54
Klaus
Hallo Alex,
wie wär's hiermit:

Sub MenüpunkteAbschalten()
With Application.CommandBars("Cell")
.Controls("Zellen einfügen...").Enabled = False
.Controls("Zellen löschen...").Enabled = False
End With
End Sub


Sub MenüpunkteEinschalten()
With Application.CommandBars("Cell")
.Controls("Zellen einfügen...").Enabled = True
.Controls("Zellen löschen...").Enabled = True
End With
End Sub

Gruß Klaus
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA: Rechtsklick-Menü in Excel anpassen


Schritt-für-Schritt-Anleitung

Um das Rechtsklick-Menü in Excel mit VBA anzupassen, folge diesen Schritten:

  1. Öffne die Excel-Arbeitsmappe, in der du das Kontextmenü anpassen möchtest.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Wähle im Projektfenster das entsprechende Tabellenblatt aus.

  4. Füge den folgenden Code in das Codefenster des Tabellenblattes ein:

    Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
       If Not Intersect(Target, [A1:B20]) Is Nothing Then Exit Sub
       Cancel = True
    End Sub
  5. Um die Einträge "Zellen einfügen..." und "Zellen löschen..." im Kontextmenü zu deaktivieren, füge diesen Code in ein neues Modul ein:

    Sub MenüpunkteAbschalten()
       With Application.CommandBars("Cell")
           .Controls("Zellen einfügen...").Enabled = False
           .Controls("Zellen löschen...").Enabled = False
       End With
    End Sub
  6. Speichere die Änderungen und teste die Funktion, indem du mit der rechten Maustaste auf verschiedene Zellen klickst.


Häufige Fehler und Lösungen

  • Fehler: Der Code funktioniert nicht.

    • Überprüfe, ob der Code im richtigen Modul eingefügt wurde. Achte darauf, dass du ihn im Codefenster des entsprechenden Tabellenblattes eingefügt hast.
  • Fehler: Der Benutzer kann weiterhin Zellen einfügen oder löschen.

    • Stelle sicher, dass der Code zum Deaktivieren der Menüeinträge korrekt ausgeführt wird. Du kannst auch den Code für die ScrollArea testen, um den bearbeitbaren Bereich einzuschränken.

Alternative Methoden

Falls der VBA-Ansatz nicht funktioniert oder du eine einfachere Lösung suchst, kannst du auch folgende Methoden ausprobieren:

  • Verwendung von Datenvalidierung: Setze die Datenvalidierung auf bestimmte Zellen, um unerwünschte Eingaben zu vermeiden.
  • Blattschutz aktivieren: Schütze das Blatt, ohne das Kontextmenü zu deaktivieren. Du kannst Benutzerrechte anpassen, um das Einfügen und Löschen von Zellen zu verhindern.

Praktische Beispiele

Hier sind zwei nützliche VBA-Subroutinen, die du in deinen Projekten verwenden kannst:

  1. Menüpunkte aktivieren:

    Sub MenüpunkteEinschalten()
       With Application.CommandBars("Cell")
           .Controls("Zellen einfügen...").Enabled = True
           .Controls("Zellen löschen...").Enabled = True
       End With
    End Sub
  2. ScrollArea setzen: (Einschränkung des bearbeitbaren Bereichs beim Öffnen)

    Private Sub Workbook_Open()
       Worksheets("Tabelle1").ScrollArea = "A1:C20"
    End Sub

Tipps für Profis

  • Nutze Application.ScreenUpdating = False und Application.ScreenUpdating = True, um das Flackern des Bildschirms zu vermeiden, wenn du mehrere Änderungen vornimmst.
  • Dokumentiere deinen Code mit Kommentaren, um ihn für andere verständlicher zu machen.
  • Teste die verschiedenen Methoden in einer Kopie deiner Datei, um unerwünschte Änderungen zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich das Kontextmenü für bestimmte Zellen anpassen?
Du kannst die Worksheet_BeforeRightClick-Ereignisprozedur verwenden, um zu bestimmen, in welchen Zellen das Menü verfügbar sein soll.

2. Was passiert, wenn ich den Blattschutz aktiviere?
Beim Aktivieren des Blattschutzes kannst du festlegen, welche Aktionen Benutzer durchführen dürfen. Du könntest das Einfügen und Löschen von Zellen einschränken, während das Rechtsklick-Menü weiterhin verfügbar bleibt.

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