Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Löschen Datenblatt verhindern

Forumthread: Löschen Datenblatt verhindern

Löschen Datenblatt verhindern
20.02.2004 09:50:21
Markus
Hallo zusammen,
ich möchte verhindern, daß ein Datenblatt mit einem bestimmten Namen (z.B. "Randbedingungen") weder gelöscht noch umbenannt werden kann. Gibt's da eine Möglichkeit?
Danke Gruß Markus
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Löschen Datenblatt verhindern
20.02.2004 10:38:41
Roland Hochhäuser
Hallo Markus,
ganz verhindern wirst du das nicht können, aber erschweren. Du kannst dazu das Tabellenblatt in den Eigenschaften Visible=xlSheetVeryHidden setzen, dann kommst du nur noch über VBA ran. Die Möglichkeit scheidet aber aus, wenn der Nutzer noch in die Tabelle schreiben soll.
Gruß
Roland
Anzeige
AW: Löschen Datenblatt verhindern
20.02.2004 11:08:13
Markus
Hallo Roland,
ich kann ja feststellen, daß ein Datenblatt gelöscht werden soll (mit Umweg über "Workbook_SheetActivate"). Jetzt geht es doch eingentlich nur darum die Ausführung der Methode per VBA zu verhindern.
Gruß Markus
AW: Löschen Datenblatt verhindern
20.02.2004 11:20:03
Roland Hochhäuser
Hallo Markus,
das sicher, aber deinem Ansatz folgende müsste man in der Lage sein, den .delete-Befehl außer Kraft setzen zu können. Mir ist nur bekannt, dass man im Workbook_SheetActivate-Ereignis diverse Shortcuts und Tastenkombinationen ausknipsen kann, aber das passt nicht wirklich zu deiner Frage. Da müsste man dann die Entfernen-Taste komplett sperren sowie die rechte Maustaste(und im DeActivate wieder freigeben), über VBA und activesheet.delete kommst du aber immer noch ran.
Gruß
Roland
Anzeige
AW: Löschen Datenblatt verhindern
20.02.2004 11:40:00
Markus
Hallo Roland,
eigentlich müßte ich doch "nur" die entsprechenden Menüpunkte und das Kontextmenü deaktivieren (Sperren der Einträge "Löschen" und Umbenennen"). Hab aber keinen Schimmer, ob es überhaupt möglich ist und wenn ja wie das geht. Erschwerend kommt hinzu, daß das ja nur für gewisse Datenblätter gelten soll.
Gruß Markus
Anzeige
AW: Löschen Datenblatt verhindern
20.02.2004 12:29:15
Roland Hochhäuser
Hallo Markus,
mit
Application.CommandBars("Ply").Enabled = False
setzt du das Menü der Tabellenreiter außer Kraft. Pack den Befehl in das Workbook_SheetActivate-Ereignis des zu schützenden Blattes und ein
Application.CommandBars("Ply").Enabled = True
in das Workbook_SheetDeactivate-Ereignis des zu schützenden Tabellenblattes.
Analog auch für die anderen zu sperrenden Befehle.
Ein wirklicher Schutz ist das wie gesagt aber nicht.
Gruß
Roland
Anzeige
AW: Löschen Datenblatt verhindern
20.02.2004 12:55:36
Markus
Roland,
eigentlich ist das schon ganz gut. Mit
Application.CommandBars("Worksheet Menu Bar").Controls ("Bearbeiten").Enabled = False
kann ich dann auch des Menü "Bearbeiten" sperren; möchte aber eigentlich nur den Unterpunkt "Blatt löschen" deaktivieren. Kannst Du mir noch einen letzten Tipp geben wie ich an den Unterpunkt heran kommen.
Danke Markus
Anzeige
AW: Löschen Datenblatt verhindern
20.02.2004 13:05:46
Roland Hochhäuser
Markus,
das geht so:
Application.CommandBars("Worksheet Menu Bar").Controls("Bearbeiten").Controls("Blatt löschen").Enabled = False
bzw. = True im Deactivate
Gruß
Roland
AW: Löschen Datenblatt verhindern
20.02.2004 14:15:47
Markus
Hallo Roland,
super! Vielen Dank
Gruß Markus
;
Anzeige

Infobox / Tutorial

Datenblatt in Excel vor dem Löschen schützen


Schritt-für-Schritt-Anleitung

  1. Öffne die Excel-Datei, in der du das Datenblatt schützen möchtest.

  2. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
  3. Wähle das entsprechende Workbook aus dem Projekt-Explorer auf der linken Seite aus.

  4. Füge den folgenden Code in das Modul für das Workbook ein:

    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
       If Sh.Name = "Randbedingungen" Then
           Application.CommandBars("Ply").Enabled = False
           Application.CommandBars("Worksheet Menu Bar").Controls("Bearbeiten").Controls("Blatt löschen").Enabled = False
       End If
    End Sub
    
    Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
       If Sh.Name = "Randbedingungen" Then
           Application.CommandBars("Ply").Enabled = True
           Application.CommandBars("Worksheet Menu Bar").Controls("Bearbeiten").Controls("Blatt löschen").Enabled = True
       End If
    End Sub
  5. Schließe den VBA-Editor und teste die Einstellungen, indem du das entsprechende Datenblatt aktivierst.


Häufige Fehler und Lösungen

  • Der Code funktioniert nicht:

    • Stelle sicher, dass du den Code im richtigen Modul eingefügt hast (das Modul für das Workbook, nicht in ein einzelnes Blatt).
  • Das Datenblatt kann weiterhin gelöscht werden:

    • Überprüfe, ob der Name des Datenblatts korrekt eingegeben wurde. Der Code muss den exakten Namen verwenden, z.B. "Randbedingungen".

Alternative Methoden

Eine andere Möglichkeit, um das Löschen eines Datenblattes in Excel zu erschweren, ist das Setzen des Sichtbarkeitsstatus auf xlSheetVeryHidden. Dies verhindert, dass das Blatt im normalen Excel-Bereich angezeigt wird. Allerdings kannst du über VBA weiterhin darauf zugreifen. Verwende dazu den folgenden Code:

ThisWorkbook.Sheets("Randbedingungen").Visible = xlSheetVeryHidden

Praktische Beispiele

Wenn du das Löschen von Datenblättern in einer komplexen Arbeitsmappe (Workbook) verhindern möchtest, kannst du die oben genannten Methoden kombinieren. Setze das Blatt "Randbedingungen" auf xlSheetVeryHidden und nutze die VBA-Events, um das Kontextmenü beim Aktivieren des Blattes zu deaktivieren.


Tipps für Profis

  • Sichere deine Arbeit: Bevor du mit VBA arbeitest, solltest du immer eine Sicherungskopie deiner Datei erstellen.
  • Verwende Kommentare im Code: Dokumentiere deinen Code mit Kommentaren, um später Änderungen leichter nachzuvollziehen.
  • Teste den Code in einer Testumgebung: Bevor du den Code in deiner Hauptdatei verwendest, teste ihn in einer Dummy-Datei.

FAQ: Häufige Fragen

1. Wie kann ich ein Datenblatt in Excel wieder sichtbar machen?
Um ein Datenblatt sichtbar zu machen, kannst du den folgenden Code verwenden:

ThisWorkbook.Sheets("Randbedingungen").Visible = xlSheetVisible

2. Welche Excel-Version benötige ich für die Verwendung von VBA?
VBA ist in den meisten modernen Excel-Versionen verfügbar, einschließlich Excel 2010, 2013, 2016, 2019 und Microsoft 365.

3. Kann ich das Löschen nur für bestimmte Benutzer sperren?
Mit den oben genannten Methoden kannst du das Löschen eines Datenblatts erschweren, jedoch ist es nicht möglich, einen perfekten Schutz gegen erfahrene Benutzer zu gewährleisten.

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