Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1760to1764
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

tabellenblatt schützen vor Veränderung

tabellenblatt schützen vor Veränderung
28.05.2020 11:54:24
Rolf
Liebe VBA Experten
ich habe eine Frage betreffend Schreibschutz einer Tabelle. Das untenstehende Makro funktioniert soweit.
Das erste unschöne daran ist aber, dass er mich zuerst fragt ob ich wirklich ohne Makros im xlsx speichern will.
das zweite ist dass wenn ich trotzdem in Versuchung komme in der Tabelle "Anfrage" etwas zu ändern, zuerst eine Meldung erscheint, dass ich den Blattschutz aufheben soll usw. und er dann in einem Laufzeitfehler 1004 endet.
Gibt es eine andere elegante Möglichkeit die Tabelle "Anfrage" gegen Veränderung zu schützen ohne nervige Meldung und natürlich auch ohne Laufzeitfehler.
Hier nun der Code
Private Sub CommandButton1_Click()
ActiveWorkbook.Save
Workbooks.Add Template:= _
"\\Serverxy\Kalkulationsvorlage mit Grundlagen.xltx"
Sheets(Array("Grundlagen", "Kalkulation")).Select
Sheets("Kalkulation").Activate
Sheets(Array("Grundlagen", "Kalkulation")).Move After:=Workbooks( _
"Checkliste Neuteil.xlsm").Sheets(1)
Sheets("Anfrage").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveWorkbook.SaveAs Filename:= _
"C:\Kalkulation2.xlsx" _
, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
End Sub
Vielen Dank für euren Input.
Liebe Grüsse
Rolf

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: tabellenblatt schützen vor Veränderung
28.05.2020 12:32:35
Blanca
Hallo Rolf,
quick and dirty, schreib vor dem Speichern die Zeile
Application.DisplayAlerts = False
und nach dem Speichern
Application.DisplayAlerts = True

Die Meldung mit dem Blattschutz zu unterdrücken, funktioniert nicht, aber sie ist ja auch logisch.
Nur der Laufzeitfehler anschließend muss ja durch einen weiteren Code ausgelöst werden. Hast du einen Eventhandler auf dem Tabellenblatt? Also befindet sich Code auf dem Tabellenblattobjekt im VBA-Projekt, der dann ausgelöst wird?
Gruß Blanca
iexcelu.de
Anzeige
AW: tabellenblatt schützen vor Veränderung
28.05.2020 13:23:42
Rolf
Hallo Blanca
Vielen Dank für deine Antwort. Das mit dem Speichern ist top.
Beim anderen hast du Recht. Den Hinweis das man sich auf einem schreibgeschützten Blatt befindet macht Sinn. Ich habe auf dem Blatt OptionButtons die man zwar noch verstellen kann aber am Ergebnis ändert sich nichts. Kann man ev die OptionButtons noch sperren?
Der Laufzeitfehler kommt nur wenn ich im aktuellen Workbook "Kalkulation2.xlsx" bleibe.
wenn ich es schliesse und wieder öffne kommt der Fehler nicht. Was meiner Meinung nach auch logisch ist da es ja ein xlsx ist.
Gruss
Rolf
AW: tabellenblatt schützen vor Veränderung
28.05.2020 14:46:40
Blanca
Hallo Rolf,
falls du einen OptionButton vom Typ Formularsteuerlement verwendet hast, lässt sich leider nichts machen. Das Klicken kann man meines Wissens nach nicht sperren. Mit einem ActiveX-Steuerlement, könntest du einen Code hinterlegen, der erst prüft, ob das Blatt gesperrt ist, aber dann geht deine .xlsx-Variante nicht mehr.
Leider keine gute Nachricht :(
Viele Grüße
Blanca
iexcleu.de
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige