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

Forumthread: Zellen sperren in mehrern Tab.-Blätter

Zellen sperren in mehrern Tab.-Blätter
20.12.2021 13:58:46
Erwin
Hallo liebes Forum,
habe eine größere Datei mit u.a. 52 Kalenderwochen-Tabellenblätter (1KW, 2KW usw.). Mit Hilfe dieses Forums habe ich es geschafft, darin per VBA ganz gezielt bestimmte Zellenbereiche beschreibbar zu halten und den Rest zu sperren.
Das ist der Code dazu:

Sub KW_sperren()
'Alle Register KWen sperren
Dim ws As Worksheet
For Each ws In Worksheets
If ws.Name Like "*KW" Then
ws.Range("A4:G4,A7:K8,A10:G10,A13:K14,A16:G16" usw.).Select  'Diese Bereiche
Selection.Locked = False  'nicht sperren
Selection.FormulaHidden = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
Next ws
End Sub
Der funktioniert auch super, aber nur für ein Tabellenblatt bzw. für das erste (1KW)!
Wenn er aber mit der For Each Schleife alle 52 Blätter durchlaufen soll, kommt die
Fehlermeldung Laufzeitfehler 1004 Die Select-Methode des Range-Objektes konnte nicht ausgeführt werden
und markiert gelb die Zeile mit ws.Range("A4......)
In der If-Anweisung (If ws.Name Like "*KW" Then) ist der richtige Parameter aber übergeben worden (ws.Name=2KW)
Warum klappt bei einem Tabellenblatt alles einwandfrei und in der Schleife nicht?
Kann mir da jemand weiterhelfen?
Vielen Dank jetzt schon
Erwin
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Zellen sperren in mehrern Tab.-Blätter
20.12.2021 14:37:42
Beverly
Hi Erwin,
so sollte es gehen:

Sub KW_sperren()
'Alle Register KWen sperren
Dim ws As Worksheet
Dim rngBereich As Range
For Each ws In Worksheets
If ws.Name Like "*KW" Then
With ws
Set rngBereich = Union(.Range("A4:G4"), .Range("A7:K8"), .Range("A10:G10"), .Range("A13:K14"), .Range("A16:G16"))
rngBereich.Locked = False
rngBereich.FormulaHidden = False
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End With
End If
Next ws
End Sub
Bis später
Karin

Anzeige
AW: Zellen sperren in mehrern Tab.-Blätter
20.12.2021 15:04:33
Erwin
Hallo Karin,
funktioniert super!!
Vielen lieben Dank und eine schöne Weihnachtszeit.
Schöne Grüße
Erwin
AW: Zellen sperren in mehrern Tab.-Blätter
20.12.2021 15:30:35
Luschi
Hallo Erwin,
diese Vba-Zeile:
Set rngBereich = Union(.Range("A4:G4"), .Range("A7:K8"), .Range("A10:G10"), .Range("A13:K14"), .Range("A16:G16"))
kann man auch so schreiben:
Set rngBereich = .Range("A4:G4, A7:K8, A10:G10, A13:K14, A16:G16")
Gruß von luschi
aus klein-Paris
Anzeige
AW: Zellen sperren in mehrern Tab.-Blätter
20.12.2021 15:51:09
Erwin
Hallo luschi,
vielen Dank Dir auch für diesen Tipp und ebenfalls eine schöne Weihnachtszeit.
Danke
Schöne Grüße
Erwin
AW: Zellen sperren in mehrern Tab.-Blätter
20.12.2021 16:26:14
Beverly
Hi Erwin,
ich habe bewusst die Range-Bereiche getrennt geschrieben, denn du hattest in deinem ersten Post "usw." bei der Aufzählung der Teilbereiche angegeben - das Problem ist nämlich, wenn man zu viele Teil-Bereiche in einen einzigen Range getrennt durch Komma (,) schreibt, gibt es ab einer gewissen Anzahl an Teil-Bereichen einen Laufzeitfehler. Diesen kann man aber umgebehen, indem man eben jeden Teilbereich als Range angibt, so wie ich es in meinem Code getan habe.
Bis später
Karin

Anzeige
AW: Zellen sperren in mehrern Tab.-Blätter
20.12.2021 17:53:43
Erwin
Hallo Karin,
danke Dir für den Tipp, das könnte auch ein Fehler-Auslöser gewesen sein, weil ich noch eine ganze Menge an Bereichen eingegeben habe.
Schöne Zeit und danke nochmals für Deine Bemühungen, hast mir super geholfen.
Schöne Grüße
Erwin
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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