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

Kopieren, Ausschneiden, Einfügen verhindern

Forumthread: Kopieren, Ausschneiden, Einfügen verhindern

Kopieren, Ausschneiden, Einfügen verhindern
06.02.2015 16:50:07
Oliver
Hallo,
Ich habe mit wenigen VBA-Kenntnissen und viel Kopieren aus dem Forum für ein Projekt alles bis auf einen letzten Schritt hinbekommen, es fehlt nur noch Eines: Ich muss in dieser Datei das Kopieren, Ausschneiden und Einfügen verhindern:
Ich habe folgendes verwendet in einem eigenen Modul:
Sub Kopieren_Einschalten()
'Tastenkombinationen einschalten
Application.OnKey "^x"
Application.OnKey "^c"
Application.OnKey "^v"
Application.OnKey "+{DEL}"
Application.OnKey "+{INSERT}"
'Drag & Drop wieder erlauben
Application.CellDragAndDrop = True
'Schaltflaechen in Menüleiste => Bearbeiten aktivieren
procControlEnableDisable 21, True ' Ausschneiden
procControlEnableDisable 19, True 'Kopieren
procControlEnableDisable 22, True 'Einfuegen
procControlEnableDisable 755, True 'Inhalte einfuegen
procControlEnableDisable 809, True 'Office-&Zwischenablage
End Sub

Sub Kopieren_Ausschalten()
'Tastenkombinationen deaktivieren
Application.OnKey "^x", ""
Application.OnKey "^c", ""
Application.OnKey "^v", ""
Application.OnKey "+{DEL}", ""
Application.OnKey "+{INSERT}", ""
'Drag & Drop ausschalten
Application.CellDragAndDrop = False
'Schaltflaechen in Menüleiste => Bearbeiten deaktivieren
procControlEnableDisable 21, False ' Ausschneiden
procControlEnableDisable 19, False 'Kopieren
procControlEnableDisable 22, False 'Einfuegen
procControlEnableDisable 755, False 'Inhalte einfuegen
procControlEnableDisable 809, False 'Office-&Zwischenablage
End Sub

Sub procControlEnableDisable(intId As Integer, _
bolStatus As Boolean)
Dim cmbSuche As CommandBar
Dim cmbcSteuerelement As CommandBarControl
On Error Resume Next
For Each cmbSuche In Application.CommandBars
Set cmbcSteuerelement = _
cmbSuche.FindControl(ID:=intId, recursive:=True)
If Not cmbcSteuerelement Is Nothing Then
cmbcSteuerelement.Enabled = bolStatus
End If
Next
End Sub

Das funktioniert auch alles tadellos. Aber es geht nur für die Shortcuts und das Kontextmenu. Leider ist es weiterhin möglich zu kopieren über die Schaltflächen in der Gruppe "Zwischenablage" im Menu "Start".
Hat hier jemand eine Idee bzw. kann mir helfen?
Vielen Dank!!!
Gruß Oliver

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kopieren, Ausschneiden, Einfügen verhindern
07.02.2015 08:46:13
Tino
Hallo,
schütze deine Tabelle dann kann nicht eingefügt werden,
alles andere bringt's nicht!
Gruß Tino
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Kopieren, Ausschneiden und Einfügen in Excel verhindern


Schritt-für-Schritt-Anleitung

Um das Kopieren, Ausschneiden und Einfügen in Excel zu verhindern, kannst Du das folgende VBA-Skript verwenden. Dieses Skript schaltet die entsprechenden Tastenkombinationen aus und deaktiviert die Schaltflächen in der Menüleiste.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Gehe zu Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Kopiere und füge den folgenden Code in das Modul ein:
Sub Kopieren_Einschalten()
    ' Tastenkombinationen einschalten
    Application.OnKey "^x"
    Application.OnKey "^c"
    Application.OnKey "^v"
    Application.OnKey "+{DEL}"
    Application.OnKey "+{INSERT}"
    ' Drag & Drop wieder erlauben
    Application.CellDragAndDrop = True
    ' Schaltflächen in Menüleiste => Bearbeiten aktivieren
    procControlEnableDisable 21, True ' Ausschneiden
    procControlEnableDisable 19, True ' Kopieren
    procControlEnableDisable 22, True ' Einfügen
    procControlEnableDisable 755, True ' Inhalte einfügen
    procControlEnableDisable 809, True ' Office-Zwischenablage
End Sub

Sub Kopieren_Ausschalten()
    ' Tastenkombinationen deaktivieren
    Application.OnKey "^x", ""
    Application.OnKey "^c", ""
    Application.OnKey "^v", ""
    Application.OnKey "+{DEL}", ""
    Application.OnKey "+{INSERT}", ""
    ' Drag & Drop ausschalten
    Application.CellDragAndDrop = False
    ' Schaltflächen in Menüleiste => Bearbeiten deaktivieren
    procControlEnableDisable 21, False ' Ausschneiden
    procControlEnableDisable 19, False ' Kopieren
    procControlEnableDisable 22, False ' Einfügen
    procControlEnableDisable 755, False ' Inhalte einfügen
    procControlEnableDisable 809, False ' Office-Zwischenablage
End Sub

Sub procControlEnableDisable(intId As Integer, bolStatus As Boolean)
    Dim cmbSuche As CommandBar
    Dim cmbcSteuerelement As CommandBarControl
    On Error Resume Next
    For Each cmbSuche In Application.CommandBars
        Set cmbcSteuerelement = cmbSuche.FindControl(ID:=intId, recursive:=True)
        If Not cmbcSteuerelement Is Nothing Then
            cmbcSteuerelement.Enabled = bolStatus
        End If
    Next
End Sub
  1. Führe die Kopieren_Ausschalten-Subroutine aus, um die Funktionen zu deaktivieren.

Häufige Fehler und Lösungen

  • Problem: Nach der Ausführung des Codes ist das Kopieren über die Schaltflächen im Menü "Start" weiterhin möglich.

    • Lösung: Stelle sicher, dass Du das VBA-Skript korrekt eingegeben hast und die Kopieren_Ausschalten-Subroutine ausgeführt wurde.
  • Problem: Excel reagiert nicht auf die Tastenkombinationen.

    • Lösung: Überprüfe, ob andere Add-Ins oder Makros die gleichen Tastenkombinationen verwenden.

Alternative Methoden

Eine andere Möglichkeit, um das Kopieren in Excel zu verhindern, ist das Schützen der Arbeitsmappe. Dies kann über die Menüoptionen in Excel erfolgen:

  1. Gehe zu Überprüfen > Blatt schützen.
  2. Wähle die gewünschten Optionen aus und aktiviere den Schutz.

Diese Methode verhindert das Einfügen von Daten, jedoch nicht das Kopieren über Tastenkombinationen.


Praktische Beispiele

Wenn Du beispielsweise eine Tabelle erstellt hast, die nicht bearbeitet werden soll, kannst Du die oben genannten VBA-Methoden verwenden. Alternativ kannst Du die Arbeitsmappe ebenfalls schützen:

Sub ArbeitsmappeSchuetzen()
    ActiveSheet.Protect Password:="deinPasswort"
End Sub

Führe diesen Code aus, um das Arbeitsblatt zu schützen und das Einfügen zu verhindern.


Tipps für Profis

  • Nutze die Möglichkeit, eigene Tastenkombinationen zu definieren, um die Benutzerfreundlichkeit zu erhöhen.
  • Halte die VBA-Codes ordentlich und dokumentiere jede Funktion, um die Wartung zu erleichtern.
  • Teste alle Änderungen in einer Kopie Deiner Arbeitsmappe, bevor Du sie in der Hauptdatei anwendest.

FAQ: Häufige Fragen

1. Frage
Wie kann ich die Tastenkombinationen wieder aktivieren?
Antwort: Du kannst die Kopieren_Einschalten-Subroutine ausführen, um die Tastenkombinationen wieder zu aktivieren.

2. Frage
Funktioniert dieser Code in allen Excel-Versionen?
Antwort: Ja, dieser VBA-Code sollte in den meisten modernen Excel-Versionen funktionieren, jedoch kann es je nach Version Unterschiede in den Menüs geben.

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