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

Forumthread: neues Tabellenblatt verhindern

neues Tabellenblatt verhindern
19.09.2015 07:33:00
Christian
Das Problem ist, dass ich verhindern möchte, dass ein neues Tabellenblatt (über das "PLUS") angelegt werden kann.
Meine Datei ist Freigegeben (Multi-User) und über andere Makros werden Tabellenblätter generiert.
Einen vergleichbaren Hinweis gibt es schon, aber mit diesem komme ich nicht weiter:

Private Sub Workbook_NewSheet(ByVal Sh As Object)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
MsgBox "Sie haben keine Berechtigung", vbOKOnly + vbExclamation, "Hinweis"
Sh.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Dabei wird zuerst das neue Blatt angelegt und versucht es wieder zu löschen. Dies geht dann allerdings aufgrund Multi-User-Fähigkeit nicht mehr.
Ich möchte generell verhindern, dass die verschiedenen Anwender über normale Befehle oder Mouseclicks ein neues Blatt anlegen können.
Kennt einer eine Lösung dazu?

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: neues Tabellenblatt verhindern
19.09.2015 08:16:20
Nepumuk
Hallo,
vor der Freigabe Arbeitsmappe schützen.
Gruß
Nepumuk

AW: neues Tabellenblatt verhindern
19.09.2015 08:36:21
Christian
Hallo
danke für den Hinweis, aber den hatte ich schon probiert.
Wie oben beschrieben, sollen neue Arbeitsblätter durch Makros hinzugefügt werden.
Dies funktioniert allerdings bei geschützten Arbeitsmappen nicht.
Und wenn ich den Schutz wieder aufheben will, muss zuvor die Freigabe aufgehoben werden. Dies muss vermieden werden.
Weiterer Vorschlag?
Christian

Anzeige
AW: neues Tabellenblatt verhindern
19.09.2015 14:23:26
Daniel
Hi
wenn niemand eine bessere Idee hat, dann blende die fälschlich erstellten Blätter doch einfach aus.
Das funktioniert auch wenn die Mappe freigegeben ist.
Das neue Blatt ist dann zwar da, aber nicht sichtbar. Wenn es mit .Visible = xlsheetveryhidden ausgeblendet wurde, kann es vom Anwender mit Excelbordmitteln auch nicht wieder eingeblendet werden.
hierzu folgende Code im New-Sheet-Event:
Private Sub Workbook_NewSheet(ByVal Sh As Object)
Sh.Visible = xlSheetVeryHidden
MsgBox "Verwenden Sie zum Erstellen von weiteren Blättern das Makro"
End Sub
Wenn jetzt ein Makro neue Blätter erstellen soll, dann kannst du so das automatische Ausblenden über das Event verhindern:
Application.EnableEvents = False
AcitveWorkbookSheets.Add
Application.EnableEvents = True
über Application.EnableEvents kannst du steueren, ob die Eventmakros ausgeführt werden sollen oder nicht.
da die ausgeblendeten Blätter leer sind, sollten sie auch nicht weiter stören und man kann eine ganze Menge davon haben, bis sich das auf die Performance oder den Speicherplatz auswirkt (ausser, der Anwender kopiert vorhandene Blätter mit grosser Datenmenge, aber das darf er in einer freigegebenen Mappe ja auch nicht)
Um diese Blätter zu entfernen, muss der Verantwortliche dann gelegentlich die Freigabe zurücknehmen und dann diesen Code laufen lassen:
dim wsh as worksheet
application.displayalerts = false
for each wsh in activeworkbook.Worksheets
if wsh.visible = xlsheetveryhidden then wsh.delete
next
application.displayalerts = true

Gruss Daniel

Anzeige
AW: neues Tabellenblatt verhindern
21.09.2015 18:12:41
Christian
Hallo Daniel
eine schöne Lösung, welche ich temporär einsetzen werden, bis ich eine Lösung zum ausblenden/deaktivieren von dem "plus" habe.
Danke
Christian
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Neues Tabellenblatt in Excel verhindern


Schritt-für-Schritt-Anleitung

Um zu verhindern, dass Benutzer ein neues Tabellenblatt über das "+"-Symbol in Excel hinzufügen können, kannst du das folgende VBA-Skript verwenden. Beachte, dass dies nur funktioniert, wenn die Arbeitsmappe nicht als freigegeben ist. Hier sind die Schritte:

  1. Öffne deine Excel-Datei.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Klicke im Projektfenster auf Diese Arbeitsmappe.
  4. Füge den folgenden Code ein:
Private Sub Workbook_NewSheet(ByVal Sh As Object)
    MsgBox "Sie haben keine Berechtigung, ein neues Blatt zu erstellen.", vbOKOnly + vbExclamation, "Hinweis"
    Sh.Delete
End Sub
  1. Speichere die Datei als Makro-fähige Arbeitsmappe (*.xlsm).
  2. Schließe den VBA-Editor und teste das Verhalten, indem du versuchst, ein neues Blatt hinzuzufügen.

Wenn du eine Freigabe der Arbeitsmappe nutzen musst, gibt es alternative Lösungen.


Häufige Fehler und Lösungen

  • Excel kann kein neues Tabellenblatt einfügen: Wenn die Arbeitsmappe geschützt ist, funktioniert das oben genannte Skript möglicherweise nicht. Stelle sicher, dass der Schutz aufgehoben ist, bevor du den Code testest.
  • Excel neues Blatt einfügen geht nicht: Dies kann auch daran liegen, dass die Datei freigegeben ist. In diesem Fall sind die Möglichkeiten eingeschränkt.
  • Makros werden nicht ausgeführt: Stelle sicher, dass die Makros in deinen Excel-Optionen aktiviert sind.

Alternative Methoden

Falls das direkte Verhindern des Hinzufügens neuer Blätter nicht möglich ist, kannst du alternativ die neu erstellten Blätter einfach ausblenden. Das geht auch in einer freigegebenen Arbeitsmappe. Verwende diesen Code:

Private Sub Workbook_NewSheet(ByVal Sh As Object)
    Sh.Visible = xlSheetVeryHidden
    MsgBox "Verwenden Sie zum Erstellen von weiteren Blättern das Makro."
End Sub

Um sicherzustellen, dass die Makros weiterhin funktionieren, kannst du das automatische Ausblenden aktivieren:

Application.EnableEvents = False
ActiveWorkbook.Sheets.Add
Application.EnableEvents = True

Praktische Beispiele

  1. Verhindern des Hinzufügens über das "+"-Symbol: Nutze den oben genannten Code in einer nicht freigegebenen Datei, um die Erstellung neuer Blätter zu blockieren.

  2. Blätter ausblenden: Setze den Code zum Ausblenden in deiner freigegebenen Arbeitsmappe ein, um unerwünschte Blätter unsichtbar zu machen.

  3. Entfernen von versteckten Blättern: Verwende den folgenden Code, um alle versteckten Blätter zu löschen:

Dim wsh As Worksheet
Application.DisplayAlerts = False
For Each wsh In ActiveWorkbook.Worksheets
    If wsh.Visible = xlSheetVeryHidden Then wsh.Delete
Next
Application.DisplayAlerts = True

Tipps für Profis

  • Regelmäßige Überprüfung: Führe regelmäßig eine Überprüfung auf versteckte Blätter durch, um sicherzustellen, dass deine Arbeitsmappe sauber bleibt.
  • Makro-Sicherheit erhöhen: Stelle sicher, dass nur autorisierte Benutzer Zugriff auf die Makros haben, um unerwünschte Änderungen zu vermeiden.
  • Detaillierte Fehlermeldungen: Passe die Fehlermeldungen in deinem VBA-Code an, um den Benutzern klare Anweisungen zu geben, warum sie kein neues Blatt erstellen können.

FAQ: Häufige Fragen

1. Warum kann ich in meiner freigegebenen Excel-Datei kein neues Tabellenblatt hinzufügen?
In einer freigegebenen Arbeitsmappe sind bestimmte Funktionen, einschließlich das Hinzufügen neuer Blätter, eingeschränkt. Du musst die Freigabe aufheben, um diese Funktion zu nutzen.

2. Wie kann ich ein neues Tabellenblatt in Excel einfügen, wenn ich die Freigabe benötige?
Du kannst neue Blätter über ein Makro hinzufügen, das die Ereignisse deaktiviert, wie im Abschnitt über alternative Methoden beschrieben.

3. Was passiert mit meinen versteckten Blättern, wenn ich die Arbeitsmappe schließe?
Versteckte Blätter bleiben auch beim Schließen der Arbeitsmappe vorhanden. Du kannst sie nur sichtbar machen, wenn du die Arbeitsmappe nicht mehr freigegeben hast.

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