online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon tinki vom 09.03.2021, 09:10 Options

Tabellenblatt schützen mit VBA

Hi, ich brauche mal Eure Hilfe. Ich möchte von einer Excel-Datei einzelne Tabellenblätter schützen, dass diese nicht verändert werden können. Hat jemand einen VBA-Code dafür parat?
Vielen Dank im Voraus. Gruß tinki


Antwort schreiben

Antwort 1 von rainberg vom 09.03.2021, 09:22 Options

Hallo tinki,

mach's doch einfach mit dem Makrorecorder.

Aber bedenke, der Blattschutz in Excel ist in Wirklichkeit keiner, da er mit primitiven Mitteln ausgehebelt werden kann.

Gruß
Rainer

Antwort 2 von tinki vom 09.03.2021, 10:18 Options

Hallo Rainer,
da ich diese Tabelle ein paar Dummy zur Verfügung stellen muss, die gerade Excel öffnen können :-), wollte ich mit folgendem VBA-Code ein Tabellenblatt, welchen nicht verändert werden darf sperren. Leider funktioniert das nicht und ich habe hier ein Hängerchen :-( Schaut mal bitte, was hier falsch ist, danke:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Zelle As Range
For Each Zelle In Target.Cells
If Zelle.HasFormula Then
ActiveSheet.Protect
Exit Sub
Else
ActiveSheet.Unprotect
End If
Next Zelle
End Sub

Gruß tinki

Antwort 3 von fedjo vom 09.03.2021, 12:26 Options

Hallo Tinki,
was willst du genau schützen, nur einzelne Tabellenblätter einer Arbeitsmappe oder nur die Zellen die Formeln enthalten?

Gruß
fedjo

Antwort 4 von coros vom 10.03.2021, 07:58 Options

Hallo tinki,

den VBA-Code, den Du gepostet hast schütz Formeln in dem aktiven Tabellenblatt. Das bedeutet, klickst Du in dem Tabellenblatt in eine Zelle, in der eine Formel eingetragen ist, wird das Blatt geschützt. Klickst Du in eine Zelle, die keine Formel enthält, wird der Blattschutz aufgehoben.
Um das Tabellenblatt zu schützen reicht Dir der Befehl

ActiveSheet.Protect


aus. Hiermit wird das aktuelle Blatt geschützt. Möchtest Du mehrere Tabellenblätter mit einem Blattschutz versehen, dann könnte so ein Makro z.B. folgendermaßen aussehen:

Option Explicit

Sub Sheet_Protect()
Sheets("Tabelle1").Protect "Hier dann ein eventuelles Passwort eintragen"
Sheets("Tabelle2").Protect "Hier dann ein eventuelles Passwort eintragen"
End Sub


In diesem Beispiel werden die Blätter mit dem Namen „Tabelle1“ und „Tabelle2“ mit einem Passwort versehen. Der Text „Hier dann ein eventuelles Passwort eintragen“, der in den Anführungszeichen ( "" ) steht, kann gelöscht, wenn kein Passwort vergeben werden soll, oder gegen das Passwort ausgetauscht werden.
Um einen Blattschutz dann wieder aufzuheben, sähe der Code so aus:

Option Explicit

Sub Sheet_Protect()
Sheets("Tabelle1").Unprotect "Hier dann ein eventuelles Passwort eintragen"
Sheets("Tabelle2").Unprotect "Hier dann ein eventuelles Passwort eintragen"
End Sub


Das mit dem Passwort verhält sich genau wie beim Schützen der Blätter.

Bei Fragen melde Dich.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 5 von tinki vom 10.03.2021, 08:46 Options

hi,
ihr bringt mich hier auf eine ganz andere idee. also, das erst tabellenblatt darf angeschaut werden, nur die formeln sollen geschützt werden. das 2. tabellenblatt bleibt flexibel und das 3. und 4 werde ich komplett passwort schützen, die daten dürfen nicht eingesehen oder geändert werden. das werde ich gleich mal mit der formel von oliver probieren, danke schon mal dafür.
meine versuchte programmierung oben soll eigentlich die formeln schützen, flutscht aber irgendwie nicht.
gruß tinki

Antwort 6 von coros vom 10.03.2021, 08:57 Options

Hallo Tinki,

wo hast Du den Code, den Du gepostet hast und der auch funktioniert, eingefügt? In ein Modul oder in das VBA-Projekt des Tabellenblatts? Der Code gehört in das VBA-Projekt des Tabellenblatts. Schaue hierzu mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 2 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 7 von tinki vom 10.03.2021, 09:50 Options

Hi, es funktioniert, wie ich es zuletzt machen wollte, danke Oliver :-)
Meine Makros waren auf deaktiv gestellt :-( Das neue Office war Schuld.
Gruß tinki

Antwort 8 von tuerpi vom 10.03.2021, 15:29 Options

Hi, ich brauche mal wieder Hilfe.
Ich habe als Beispiel in den Zellen A1 "Sort-1" und in Zelle A2 "-" stehen. Nun möchte ich aber, dass in A4 automatisch jetzt der Inhalt von A1 angezeigt wird und wenn es umgekehrt ist, also A1 "-" und A2 "Sort-2", dann soll der Inhalt von A2 angezeigt werden. Mit normaler "Wenn-Formel" komme ich nicht weiter. Kann mir da jemand helfen?
Gruß tuerpi

Antwort 9 von tuerpi vom 10.03.2021, 15:30 Options

Schitt das war falsch, ich interessierte mich für diesen Beitrag, sorry, ich gelobe Besserung :-( Mache eine neue Anfrage auf. Sorry tinki

Ähnliche Themen

2 Zellen in Tabellenblatt 1in Tabellenblatt 2 automatisch übernehmen
shayenne27  17.10.2007 - 90 Hits - 7 Antworten

Tabellenblatt mit Dropdown`s schützen
Ulle-gt5  25.03.2008 - 123 Hits - 9 Antworten

VBA U. F. ausführung in Tabellenblatt
ro05  11.04.2008 - 32 Hits - 2 Antworten

Daten von Excel-Tabellenblatt via VBA in Word übergeben
Zwula  06.03.2009 - 1919 Hits - 8 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026