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

Einzelne Zellen / Ranges mit VBA sperren

Einzelne Zellen / Ranges mit VBA sperren
25.01.2024 09:09:26
Ben
Hallo Zusammen,

ich versuche, einzelne Ranges in einem Tabellenblatt zu sperren.

Dazu gehe ich z.B. folgendermaßen vor:

Worksheets("MyTable").Unprotect
Sheets("MyTable").Range(A12:B37).Select
Selection.Locked = False
Worksheets("Notenliste").Protect

Das funktioniert nicht.

Warum?

Vielen Dank und viele Grüße
Ben

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Einzelne Zellen / Ranges mit VBA sperren
25.01.2024 09:27:21
UweD
Hallo

- du entsperrst / sperrst 2 unterschiedliche Tabellenblätter
- locked= False bedeutet NICHT gesperrt
- Bei der Rangeangabe fehlen die ""


so??
    With Worksheets("MyTable")

'Blatt entsperren
.Unprotect

'Alle Zellen freigeben
.Cells.Locked = False

'deinen Bereich sperren
.Range("A12:B37").Locked = True

'Blatt schützen
.Protect
End With

LG UweD
AW: Einzelne Zellen / Ranges mit VBA sperren
25.01.2024 09:46:15
Ben
Danke Uwe,

da ist einiges schiefgelaufen in meinem Post.
Im Code sieht es anders aus.
Natürlich steht da

Worksheets("MyTable").Unprotect
Sheets("MyTable").Range("A12:B37").Select
Selection.Locked = True
Worksheets("MyTable").Protect

Das ist natürlich nur ein Beispiel.

Es funktioniert einfach nicht.

Kann das mit einem früheren Blattschutz zusammenhängen, der aus der Bedienoberfläche erfolgte?

Das Problem liegt wohl auch daran, dass ich mehrere Bereiche sperren will.
Diese Bereiche durchlaufe ich mit einer Schleife.

Was könnte das sein?!?
Anzeige
AW: Einzelne Zellen / Ranges mit VBA sperren
25.01.2024 10:43:36
Ben
Danke Uwe für Deinen sachlichen und Hilfreichen Post.

Ich habe das Problem gefunden.

Bei meinem Tabellenblatt sind verbundene Zellen enthalten.
Damit wird die .selection ausgeweitet unabhängig von der angegebenen Range.
Damit haben dann auch die Zuweisungen von Locked und Unlocked nicht richtig funktioniert.

Es hat mich einiges an Zeit gekostet.
Ist aber auch ein blöder Fehler.

VG
AW: Einzelne Zellen / Ranges mit VBA sperren
25.01.2024 11:19:31
UweD
Hallo nochmal

Auf select und activate kann in 99% im Code verzichtet werden. Dadurch wird der Ablauf wesentlich ruhiger und schneller.
Siehe meinen Code im anderen Post


LG UweD
Anzeige
AW: Einzelne Zellen / Ranges mit VBA sperren
25.01.2024 10:38:34
UweD
Hallo
1) Es funktioniert einfach nicht.
Was genau?
versuch mal das Makro im Einzelschritt (F8) zu durchlaufen

2) Kann das mit einem früheren Blattschutz zusammenhängen, der aus der Bedienoberfläche erfolgte?
hast du ein Passwort gesetzt? dann musst du das beim Entsperren im Code auch angeben
        .Unprotect "Geheim"



3) Diese Bereiche durchlaufe ich mit einer Schleife.
Ich weiß nicht, wie du deine Schleife aufgebaut hast.
Ich würde es so machen:
Sub dsd()

Dim i As Integer
With Worksheets("MyTable")
'Blatt entsperren
.Unprotect

'Alle Zellen freigeben
.Cells.Locked = False

'Schleife
For i = 12 To 100 Step 49 ' Bespiel: im ersten Durchlauf A12:B37
'deinen Bereich sperren
.Cells(i, 1).Resize(26, 2).Locked = True 'immer 27 Zeilen
Next
'Blatt schützen
.Protect
End With
End Sub


LG UweD
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige