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

Forumthread: Ausschneiden verhindern

Ausschneiden verhindern
HeinrichB
hi Ihr Wissenden :-),
mit meiner Frage https://www.herber.de/forum/messages/421405.html
zum Verhindern von Ausschneiden bin ich leider nicht zum Ziel gekommen, trotz vieler brauchbarer Anregungen (danke dafür!).
ich habe nun die Idee, das Ausschneiden zu verhindern mit dem .onkey-ereignis

Private Sub Worksheet_Activate()
'Cut Erkennung aktivieren
.OnKey "^x", "Vor_Ausschneiden_warnen"
End With
End Sub

Private Sub Worksheet_Deactivate()
'Cut Erkennung Zuruecksetzen
With Application
.OnKey "^x"
End With
End Sub

Meine Frage: Gibt es sowas auch für die Menüfunktionen 'Bearbeiten-Ausschneiden', die rechte Mausfunktion 'Ausschneiden' und das Menü-Icon 'ausschneiden'(Schere)? (entweder erkennen wenn sie betätigt werden oder deaktivieren).
(Anm.: Drag and Drop gehört auch dazu, das habe ich bereits verhindert).
Danke im Voraus
Heinrich B
Anzeige

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

Betreff
Benutzer
Anzeige
Ein paar Anregungen ...
Volker
Hallo Heinrich,

Private Sub Workbook_Open()
'   [STRG]+[X] deaktivieren:
Application.OnKey "^x", ""
'   Menue Bearbeiten teilweise deaktivieren:
With Application.CommandBars("Worksheet Menu Bar").Controls("Bearbeiten")
.Controls("Ausschneiden").Enabled = False
End With
'   Symbole deaktivieren:
With Application.CommandBars("Standard")
.FindControl(ID:=21).Enabled = False    ' Ausschneiden
End With
'   Menue rechte Maustaste deaktivieren:
Application.CommandBars("Cell").Enabled = False
End Sub


Private Sub Workbook_BeforeClose(Cancel As Boolean)
'   Standardeinstellung fuer [STRG]+[X] wieder herstellen:
Application.OnKey "^x"
'   Die Menues wieder aktivieren:
Application.CommandBars("Worksheet Menu Bar").Reset
Application.CommandBars("Standard").Reset
'   Menue rechte Maustaste wieder aktivieren:
Application.CommandBars("Cell").Enabled = True
End Sub

Gruss
Volker Croll
www.crolltools.decolor>
Anzeige
danke Volker, ein strauss von leckerbissen
leckerbissen
hi volker,
daaanke :-). ein strauss von leckerbissen, werd sie morgen ausprobieren.
suuuper.
btw.: kannst du mir sagen, was es mit der funktion
Application. CutCopyMode auf sich hat? ich kann weder mit true oder false was einstellen, noch bekomme ich bei cut etwas zurück (bei einer art einfügen eine 1). habs wohl nicht verstanden.
Gruß
Heinrich
Anzeige
AW: Ausschneiden verhindern
Kurt
Damit bist du noch immer nicht "durch", du musst auch noch verhindern,
dass sich user einfach eine neue Symbolleiste bastelt!
Kurt
naja, gegen mutwilligkeit ist ja doch kein kraut .
HeinrichB
hi kurt,
naja, gegen mutwilligkeit hilft natürlich nichts. aber solange ich dem user eine funktion ausschneiden-einfügen anbiete kann er davon ausgehen dass sie erlaubt ist.
Gruß
Heinrich
Anzeige
Volker, es funktioniert wunderbar :-)
Heinrich
danke Volker, ich konnte deine tipps umsetzen und es funktioniert wunderbar :-)
man muss nur ein wenig aufpassen, dass man bei allerhand situationen wieder zurückstellt, damit der benutzer nicht plötzlich mit einem EXCEL dasteht das kein ausschneiden mehr kennt.
Mit anerkennendem Gruß
Heinrich B
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Ausschneiden in Excel verhindern


Schritt-für-Schritt-Anleitung

Um das 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. Wähle im Projekt-Explorer das Arbeitsblatt aus, in dem Du das Ausschneiden verhindern möchtest.

  3. Füge den folgenden Code in das Codefenster ein:

    Private Sub Workbook_Open()
        ' [STRG]+[X] deaktivieren
        Application.OnKey "^x", ""
        ' Menü Bearbeiten teilweise deaktivieren
        With Application.CommandBars("Worksheet Menu Bar").Controls("Bearbeiten")
            .Controls("Ausschneiden").Enabled = False
        End With
        ' Symbole deaktivieren
        With Application.CommandBars("Standard")
            .FindControl(ID:=21).Enabled = False ' Ausschneiden
        End With
        ' Menü rechte Maustaste deaktivieren
        Application.CommandBars("Cell").Enabled = False
    End Sub
    
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        ' Standardeinstellung für [STRG]+[X] wieder herstellen
        Application.OnKey "^x"
        ' Die Menüs wieder aktivieren
        Application.CommandBars("Worksheet Menu Bar").Reset
        Application.CommandBars("Standard").Reset
        Application.CommandBars("Cell").Enabled = True
    End Sub
  4. Schließe den VBA-Editor und speichere Deine Datei als Makro-fähige Arbeitsmappe (*.xlsm).

Damit wird das Ausschneiden sowohl über die Tastenkombination STRG + X als auch über das Menü und die rechte Maustaste deaktiviert.


Häufige Fehler und Lösungen

  • Fehler: Die Änderungen sind nicht sichtbar, wenn ich die Datei schließe und erneut öffne.

    • Lösung: Stelle sicher, dass Du die Datei als Makro-fähige Arbeitsmappe gespeichert hast.
  • Fehler: Ich kann das Ausschneiden trotzdem durchführen.

    • Lösung: Überprüfe, ob Du den Code im richtigen Arbeitsblatt eingefügt hast und dass die Makros aktiviert sind.

Alternative Methoden

Wenn Du VBA nicht verwenden möchtest, kannst Du auch folgende Methoden ausprobieren:

  1. Schutz der Arbeitsmappe: Du kannst die Arbeitsmappe schützen, sodass Benutzer keine Änderungen vornehmen können, einschließlich Ausschneiden.

    • Gehe auf Überprüfen > Blattschutz und aktiviere die entsprechenden Optionen.
  2. Datenvalidierung: Setze eine Datenvalidierung für die Zellen, die Du schützen möchtest. Dies kann zwar das Ausschneiden nicht direkt verhindern, aber es hilft, das unerwünschte Bearbeiten zu kontrollieren.


Praktische Beispiele

Ein Beispiel für einen vollständigen VBA-Code, um das Ausschneiden zu verhindern:

Private Sub Workbook_Open()
    Application.OnKey "^x", ""
    With Application.CommandBars("Worksheet Menu Bar").Controls("Bearbeiten")
        .Controls("Ausschneiden").Enabled = False
    End With
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.OnKey "^x"
    Application.CommandBars("Worksheet Menu Bar").Reset
End Sub

Setze diesen Code in das ThisWorkbook Modul ein, um die Funktionalität für die gesamte Arbeitsmappe zu aktivieren.


Tipps für Profis

  • .OnKey man: Nutze die .OnKey Methode, um andere Tastenkombinationen zu deaktivieren oder eigene Funktionen zu erstellen.
  • Halte Deinen VBA-Code ordentlich und kommentiere Deine Abschnitte, um die Wartung zu erleichtern.
  • Teste Deinen Code gründlich in verschiedenen Szenarien, um unerwartete Probleme zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich das Ausschneiden nur für bestimmte Benutzer deaktivieren? Du kannst die Benutzeridentifikation in VBA verwenden, um spezifische Einstellungen für unterschiedliche Nutzer zu implementieren.

2. Was passiert, wenn ich die Datei ohne Makros öffne? Wenn Du die Datei ohne Makros öffnest, sind die Einstellungen zum Verhindern des Ausschneidens nicht aktiv. Stelle sicher, dass die Makros aktiviert sind, wenn Du die Datei öffnest.

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