Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
816to820
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
816to820
816to820
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Sheet löschen und sheet insert verhindern

Sheet löschen und sheet insert verhindern
06.11.2006 11:16:32
Eve
Hallo zusammen
Was für ein Code muss ich schreiben, um das einfügen von neuen Tabellenblättern, sowie das löschen von Tabellen zu verhindern?
Diesen Code, um die Tabellen zu schützen habe ich bereits, nur eben kann
man Sheets löschen und einfügen:
Public

Sub Protect()
Worksheets(4).Activate
ActiveSheet.Protect "test", _
DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
AllowFormattingCells:=True, _
AllowFormattingColumns:=True, _
AllowFormattingRows:=False, _
AllowInsertingColumns:=False, _
AllowInsertingRows:=False, _
AllowInsertingHyperlinks:=False, _
AllowDeletingColumns:=False, _
AllowDeletingRows:=False, _
AllowSorting:=False, _
AllowFiltering:=False, _
AllowUsingPivotTables:=False
End Sub

Vielen Dank für Eure Hilfe.
Greez
Eve

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sheet löschen und sheet insert verhindern
06.11.2006 11:38:11
ChrisL
Hallo Eve
Dein Ziel solltest du erreichen, wenn du die Mappe (anstelle Blatt) schützen tust.
z.B.
ThisWorkbook.Protect
Gruss
Chris
AW: Sheet löschen und sheet insert verhindern
06.11.2006 12:01:57
Eve
Hallo Chris
Danke für den Tip, habs versucht, doch wenn ich das Workbook schütze,
funktioniert kein Code mehr, z.B. auf das aktuelle Tagesdatum springen.
Gibts keine Möglichkeit mit VBA, damit ich keine Sheets hinzufügen oder löschen kann.
Mehr brauche ich nicht.
Wäre toll, wenn mir da wer helfen könnte.
Gruss Eve
AW: Sheet löschen und sheet insert verhindern
06.11.2006 13:30:16
ChrisL
Hallo Eve
Antwort kurz: NEIN
Wenn es Konflikt mit Code gibt, dann kannst du den Mappenschutz kurzfristig deaktivieren z.B.
ThisWorkbook.Unprotect
' hier Dein Code
ThisWorkbook.Protect
Gruss
Chris
Anzeige
AW: Sheet löschen und sheet insert verhindern
06.11.2006 14:46:19
Eve
Hallo Chris
Danke, it works indeed.
Gruss Eve
AW: Sheet löschen und sheet insert verhindern
06.11.2006 14:25:48
fcs
Hallo Eve,
außer der von Chris beschriebenen Methode den Schutz der Mappe ein-/auszuschalten gibt es noch die die Möglichkeit dem Anwender "auf die Finger zu schlagen" wenn er/sie es versucht.
Nachfolgender Code (in DieseArbeitsmappe) löscht nach Meldung ein neues Blatt sofort wieder, nach Löschen eines Blattes wird die Datei ohne Speichern geschlossen, bei Änderung des Namens eines Blattes wird dieser beim Speichern bzw. Wechsel auf ein anderes Blatt wieder zurückgeändert.
Voraussetzung ist natürlich, dass man die Datei nur mit aktivierten Makros bearbeiten kann. D.h. relevante Tabellenblätter werden beim Öffnen per Makro auf sichtbar geschaltet und beim schließen der Datei wieder ausgeblendet. Wer die Makros nicht aktiviert sieht dann nur ein Blatt mit einem entsprechenden Hinweis.
Gruß
Franz

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'Überwachung Umbenennung
Dim Namen, Blatt, Neu As Boolean, Blattneu() As Boolean, I%
Namen = Array("Tabelle1", "Tabelle2", "Tabelle3") 'zulässige/gültige Namen
ReDim Blattneu(UBound(Namen))
For Each Blatt In ThisWorkbook.Sheets
For I = 0 To UBound(Namen)
Neu = True
If Blatt.Name = Namen(I) Then
Neu = False
Blattneu(I) = True
Exit For
End If
Next
If Neu = True Then
MsgBox "Es dürfen keine Tabellenblätter umbenannt werden. Blatt wird wieder umbenannt!"
For I = 0 To UBound(Namen)
If Blattneu(I) = False Then
Blatt.Name = Namen(I)
Exit For
End If
Next
Exit For
End If
Next
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
'Überwachung der Tabellenblätter
Dim Anzahl%, Namen, Blatt, Neu As Boolean, Blattneu() As Boolean, I%
Anzahl = 3 'Anzahl Register
Namen = Array("Tabelle1", "Tabelle2", "Tabelle3") 'zulässige/gültige Namen
If ThisWorkbook.Sheets.Count <> Anzahl Then
If ThisWorkbook.Sheets.Count < Anzahl Then
MsgBox "Es dürfen keine Tabellenblätter gelöscht werden. Datei wird geschlossen!"
ThisWorkbook.Close savechanges:=False
Else
MsgBox "Es dürfen keine Tabellenblätter hinzugefügt werden. Blatt wird gelöscht!"
For Each Blatt In ThisWorkbook.Sheets
Neu = True
For I = 0 To UBound(Namen)
If Blatt.Name = Namen(I) Then
Neu = False
Exit For
End If
Next
If Neu = True Then
Application.DisplayAlerts = False
Blatt.Delete
Application.DisplayAlerts = True
End If
Next
End If
Else
'Überwachung Umbenennung
ReDim Blattneu(UBound(Namen))
For Each Blatt In ThisWorkbook.Sheets
For I = 0 To UBound(Namen)
Neu = True
If Blatt.Name = Namen(I) Then
Neu = False
Blattneu(I) = True
Exit For
End If
Next
If Neu = True Then
MsgBox "Es dürfen keine Tabellenblätter umbenannt werden. Blatt wird wieder umbenannt!"
For I = 0 To UBound(Namen)
If Blattneu(I) = False Then
Blatt.Name = Namen(I)
Exit For
End If
Next
Exit For
End If
Next
End If
End Sub

Anzeige
AW: Sheet löschen und sheet insert verhindern
06.11.2006 15:11:58
Eve
Hi fcs
Das ist ja geil !!!
Danke, werds gleich in meine Datei anpassen.
Gruss Eve

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige