Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1448to1452
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
Inhaltsverzeichnis

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?

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige