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

Forumthread: Kopieren/Ausschneiden verhindern - auch Menüband

Kopieren/Ausschneiden verhindern - auch Menüband
06.11.2013 10:23:47
Wolfango
Hallo zusammen,
mein Ziel:
In einer Excel-Tabelle soll jedes Auschneiden/Kopieren/Einfügen verhindert werden.
Das Blatt ist geschützt, etliche Zellen sind nicht gesperrt und genau hier soll o.g. verhindert werden.
im Netz habe ich untenstehenden VBA-Code gefunden. Der führt mich auch schon fast zum Ziel.
- Drag and Drop funktioniert nicht mehr
- Kopieren/Ausschneiden über das Kontextmenü wird ebenfalls deaktiviert
- Kopieren/Ausschneiden über Shortcuts wird ebenfalls deaktiviert
aber:
- der Kopier/Ausschneiden-Befehl im Menüband ist leider noch aktiv
Was muss ich am Code ändern?
Kann es sein, dass der Code noch für eine ältere Excel-Version (ohne Menüband) geschrieben wurde und nun an 2010 angepasst werden muss?
Vorab schon mal vielen Dank!
Gruß,
Wo
Private Sub Workbook_Activate()
CutCopyOff
End Sub

Private Sub Workbook_Deactivate()
CutCopyOn
End Sub

Sub CutCopyOff()
CutCopyOnOff 19, False 'Menübefehl "Kopieren"
CutCopyOnOff 21, False 'Menübefehl "Ausschneiden"
CutCopyOnOff 22, False 'Menübefehl "Einfügen"
CutCopyOnOff 755, False 'Menübefehl "Inhalte einfügen"
Application.OnKey "^c", "" 'Kopieren mit "Strg + C"
Application.OnKey "^x", "" 'Ausschneiden mit "Strg + X"
Application.OnKey "^v", "" 'Einfügen mit "Strg + V"
Application.OnKey "^{INSERT}", "" 'Kopieren mit "Strg + Einfg"
Application.OnKey "+{DEL}", "" 'Ausschneiden mit "Umsch + Entf"
Application.OnKey "+{INSERT}", "" 'Einfügen mit "Umsch + Einfg"
Application.CellDragAndDrop = False 'Ziehen mit der Maus
End Sub
Sub CutCopyOn()
CutCopyOnOff 19, True
CutCopyOnOff 21, True
CutCopyOnOff 22, True
CutCopyOnOff 755, True
Application.OnKey "^c"
Application.OnKey "^x"
Application.OnKey "^v"
Application.OnKey "^{INSERT}"
Application.OnKey "+{DEL}"
Application.OnKey "+{INSERT}"
Application.CellDragAndDrop = True
End Sub
Sub CutCopyOnOff(Id As Variant, AnAus As Boolean)
Dim cb As CommandBar
Dim ctl As CommandBarControl
For Each cb In Application.CommandBars
Set ctl = cb.FindControl(Id:=Id, Recursive:=True)
If Not ctl Is Nothing Then ctl.Enabled = AnAus
Next
End Sub

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Kopieren/Ausschneiden verhindern - auch Menüband
06.11.2013 10:31:35
Hajo_Zi
schreibe doch unter DieseArbeitsmappe.
Option Explicit
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Application.CutCopyMode = False
End Sub

Anzeige
Menüband 2007
06.11.2013 10:43:57
Hajo_Zi
das Menüband bekommst Du nur über XML Programmierung verändern. Also Befehlsgruppe ausblenden und Rest Neu erstellen.
Gruß Hajo

AW: Kopieren/Ausschneiden verhindern - auch Menüband
06.11.2013 10:54:22
Wolfango
Viiiiiielen Dank!
Das ist ja wesentlich kürzer und funktioniert einwandfrei!!
Der Copy-Befehl im Menüband verhält sich dann recht bemerkenswert: Er ist aktiv, lässt sich auch aufrufen. Aber: Es lässt sich nur an Ort und Stelle wieder einfügen! Sobald man andere Zellen aktiviert ist der Einfügen-Befehl inaktiv. Und damit ist mein Ziel ja erreicht!
Danke nochmal und Gruß,
Wo

Anzeige
Kopieren/Ausschneiden verhindern - auch Menüband
06.11.2013 10:56:18
Hajo_Zi
es ist noch nicht ganz abgeschaltet, wähle eine Zelle in Deiner Datei, wechsle die Datei kopieren in anderer Datei, zurück und einfügen.

Kopieren/Ausschneiden verhindern - auch Menüband
06.11.2013 11:46:50
Hajo_Zi
mein Fall kann man noch verhindern mit
Option Explicit
Private Sub Workbook_Activate()
Application.CutCopyMode = False
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
End Sub

Der Code nützt aber nichts falls Makros deaktiviert.
Gruß Hajo

Anzeige
Kopieren/Ausschneiden verhindern - auch Menüband
06.11.2013 11:47:29
Hajo_Zi
es sollte überall
Application.CutCopyMode = False
stehen

AW: Kopieren/Ausschneiden verhindern - auch Menüband
06.11.2013 13:20:38
Wolfango
...klappt bestens.....aaaaaber:
Nun ist der Kopieren/Ausschneiden-Befehl in jedweder Datei deaktiviert!!?
Selbst wenn ich Excel schließe/öffne und anschließend eine neue Datei anlege ist der Befehl nicht mehr da!!?
Wie kann das denn sein?
(...und wie bekomme ich ihn wieder zurück?)
Gruß, Wo

Anzeige
Kopieren/Ausschneiden verhindern
06.11.2013 13:24:13
Hajo_Zi
der Befehl sollte nur in der einen Datei abgeschaltet sein. Es ist ja kein Add In.
Du bekommst aus Deiner Datei nichts kopiert, sobald eine andere Zelle oder Tabelle in der Datei gewählt wird
Gruß Hajo

Anzeige
AW: Kopieren/Ausschneiden verhindern
06.11.2013 16:34:42
Wolfango
...jetzt geht's!
Danke nochmal!
Gruß, Wo
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Kopieren und Ausschneiden in Excel verhindern


Schritt-für-Schritt-Anleitung

Um das Kopieren und Ausschneiden in Excel zu verhindern, kannst Du VBA (Visual Basic for Applications) verwenden. Folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Im Projekt-Explorer wähle „DieseArbeitsmappe“ aus.

  3. Füge den folgenden Code ein:

    Option Explicit
    
    Private Sub Workbook_Activate()
        Application.CutCopyMode = False
    End Sub
    
    Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
        Application.CutCopyMode = False
    End Sub
  4. Schließe den VBA-Editor und speichere die Arbeitsmappe als „Excel-Makro-aktivierte Arbeitsmappe“ (Dateiendung .xlsm).

  5. Aktiviere den Blattschutz, um Änderungen an den Zellen zu verhindern.

Dieser Code sorgt dafür, dass das „Kopieren“ und „Ausschneiden“ in Deiner Excel-Tabelle effektiv gesperrt wird.


Häufige Fehler und Lösungen

  • Kopieren/Ausschneiden funktioniert immer noch: Stelle sicher, dass Du den Blattschutz aktiviert hast. Ohne Schutz können die meisten Funktionen weiterhin genutzt werden.
  • Excel startet ohne Kopieren/Ausschneiden: Wenn der Befehl in jeder Datei deaktiviert ist, könnte es sein, dass der VBA-Code global ausgeführt wird. Überprüfe, ob Du den Code in „DieseArbeitsmappe“ eingefügt hast und nicht in „DieseArbeitsmappe“ eines Add-Ins.
  • Makros sind deaktiviert: Stelle sicher, dass Du Makros in Excel aktiviert hast, sonst funktioniert der Code nicht.

Alternative Methoden

Wenn Du eine weniger technische Lösung suchst, kannst Du auch folgende Methoden ausprobieren:

  • Verwendung von Zellenschutz: Du kannst die Zellen, die Du schützen möchtest, sperren und den Blattschutz aktivieren. So wird das Kopieren und Ausschneiden in diesen Zellen verhindert, jedoch bleibt der Zugriff auf andere Zellen erhalten.
  • Anpassen des Menübands: In Excel 2010 und neuer kannst Du das Menüband anpassen und die Befehle „Kopieren“ und „Ausschneiden“ ausblenden, indem Du die XML-Programmierung verwendest.

Praktische Beispiele

  1. Kopieren und Einfügen in einer bestimmten Zelle verhindern: Wenn Du nur das Kopieren und Ausschneiden in einer bestimmten Zelle verhindern möchtest, kannst Du den Code anpassen, um nur diese Zelle zu überprüfen:

    Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
        If Not Intersect(Target, Sh.Range("A1")) Is Nothing Then
            Application.CutCopyMode = False
        End If
    End Sub
  2. Gesamten Arbeitsblatt schützen: Wenn Du das Kopieren und Ausschneiden auf dem gesamten Arbeitsblatt verhindern möchtest, kannst Du einfach den oben genannten Code verwenden.


Tipps für Profis

  • Verwendung von Shortcut-Keys: Stelle sicher, dass Du die Shortcuts für „Kopieren“ (Strg + C) und „Ausschneiden“ (Strg + X) deaktivierst, um das Kopieren in Excel zu verhindern.
  • Regelmäßige Backup-Kopien: Da Du mit VBA arbeitest, ist es ratsam, regelmäßige Sicherungskopien Deiner Excel-Dateien zu erstellen, um Datenverlust zu vermeiden.
  • Testen in verschiedenen Excel-Versionen: Teste Deinen Code in verschiedenen Versionen von Excel, um sicherzustellen, dass die Funktionalität überall gleich bleibt.

FAQ: Häufige Fragen

1. Wie kann ich das Kopieren und Einfügen in Excel vollständig verhindern? Du kannst dies erreichen, indem Du den oben genannten VBA-Code in „DieseArbeitsmappe“ einfügst und den Blattschutz aktivierst.

2. Funktioniert das auch in Excel 365? Ja, die beschriebenen Methoden funktionieren in Excel 365 sowie in früheren Versionen wie Excel 2010 und 2013.

3. Was passiert, wenn ich Makros deaktiviere? Wenn Makros deaktiviert sind, wird der VBA-Code nicht ausgeführt, und das Kopieren und Ausschneiden bleibt aktiv. Stelle sicher, dass Du Makros aktivierst, um die gewünschten Funktionen nutzen zu können.

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