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

Verschiedene Zellbereiche sperren

Verschiedene Zellbereiche sperren
17.12.2021 16:37:50
Erwin
Hallo liebes Forum,
ich habe eine größere Datei u.a. mit 52 Kalenderwochen-Tabellenregister. In diesen 52 Blätter (1KW usw.) habe ich einen bestimmten zusammenhängenden
Bereich nicht gesperrt, den Rest schon.
Dies ist der Code, der auch einwandfrei funkioniert

Sub KW_sperren()
'Alle Register KWen sperren
Dim ws As Worksheet
For Each ws In Worksheets
If ws.name Like "*KW" Then
With ws.Range("A2:P146") 'Diesen Bereich
.Locked = False        'nicht sperren
.FormulaHidden = False
End With
ws.Protect Password:="...", _
DrawingObjects:=True, _
Contents:=True, _
Scenarios:=True
End If
Next ws
End Sub
Jetzt möchte ich aber in dem nicht gesperrten Bereich A2:P146 etwas differenzierter vorgehen, also nicht mehr den ganzen Bereich zusammenhängend,
sondern wirklich nur die Bereiche nicht mehr sperren, die beschreibbar bleiben sollen.
Mit dem Code

Sub KW_sperren()
'Alle Register KWen sperren
Dim ws As Worksheet
For Each ws In Worksheets
If ws.name Like "*KW" Then
'Diese Bereiche nicht sperren
With ws.Range("A4:G4,A7:P8,A10:G10,A13:P14,A16:G16 usw.).Select
.Locked = False
.FormulaHidden = False
End With
ws.Protect Password:="...", _
DrawingObjects:=True, _
Contents:=True, _
Scenarios:=True
End If
Next ws
End Sub
bekomme ich aber nur die Fehlermeldung
Laufzeitfehler 1004: Die Select-Eigenschaft des Range-Objektes kann nicht zugeordnet werden.
Kann mir jemand sagen, wo da der Fehler liegt.
Danke im Voraus.
Erwin

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verschiedene Zellbereiche sperren
17.12.2021 17:12:22
Piet
Hallo Erwin
ich habe auch 1 Minute gebraucht und gerätselt wo der Fehler liegt. Dabei kann man ihn in 2 Sekunden optisch sehen!
Bitte schau mal genau hin, achte auf den Unterschied zwischen oberem und unterem Code. Unten endet dein With Range mit - Select!!
Du kannst bei With aber kein Select angeben, und dann mit ..Locked weiterschreiben. Das beisst sich wie Katze und Hund!
mfg Piet
AW: Verschiedene Zellbereiche sperren
17.12.2021 17:41:53
Erwin
Hallo Piet,
vielen Dank für Deine schnelle Antwort.
Du hast völlig recht, habe ich überhaupt nicht gecheckt.
Nachdem ich jezt .Select entfernt habe bekomme ich zwar keine Fehlermeldung mehr,
aber der Code funktioniert nicht. Er lässt immer noch den alten Bereich zum beschreiben zu.
Außerhalb sperrt er ihn tadellos. Die einzelnen Range-Angaben mit Komma getrennt interessieren
ihn nicht,
Erwin
Anzeige
AW: Verschiedene Zellbereiche sperren
17.12.2021 17:20:33
Yal
Hallo Erwin,
Wenn Du einen With verwendest, dann muss der Ausdrück dahinter so sein, dass es vor dem Punkt der anschliessenden Anweisungen passen würde.
Es kann daher keine Select sein, denn nach dem Select nichts mehr kommt : Range(...).Select.Interior.ColorIndex = 3 geht nicht.
Lustigerweise scheint diese mehrfache Deklaration von Ranges nur in Kombination mit einem Select zu funktionieren. Also kein With und danach auch kein Punkt, sondern "Selection. ..."

ws.Range("A4:G4,A7:P8,A10:G10,A13:P14,A16:G16").Select
Selection.Locked = False
Selection.FormulaHidden = False
Alternativ wäre mit einer Schleife (ob schöner, ist Geschmacksache):

Sub KW_sperren()
'Alle Register KWen sperren
Dim ws As Worksheet
Dim Z As Range 'Zelle
For Each ws In Worksheets
If ws.Name Like "*KW" Then
For Each Zelle In Split("G4,P7,P8,G10,P13,P14,G16", ",")
With ws.Range(Z.EntireRow.Cells(1, 1), Z) 'Z.EntireRow.Cells(1,1) ist die Zelle in Spalte A vom Zeile von Z
.Locked = False
.FormulaHidden = False
End With
Next
ws.Protect Password:="...", DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
Next
End Sub
VG
Yal
Anzeige
AW: Verschiedene Zellbereiche sperren
17.12.2021 17:48:57
Erwin
Hallo Yal und Piet,
vielen Dank euch beiden.
Funktioniert jetzt und habe wieder was dazugelernt!
Schöne Grüße
Erwin

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige