Microsoft Excel

Herbers Excel/VBA-Archiv

Blattschutz Arbeitsmappe -Aufheben Zelle

Betrifft: Blattschutz Arbeitsmappe -Aufheben Zelle von: Markus Lehmann
Geschrieben am: 01.10.2020 20:52:28

Hallo...


Ich habe mein ganzes Tabellenblatt mit einem Blattschutz versehen.


Nun möchte ich, dass per Makro z.B. für Zelle B1 der Schutz aufgehoben wird. Ich mache nun eine Eintragung im B1 und durch Enter soll die Zelle B2 angesprochen werden. Gleichzeitig wird der Schutz wieder bei B1 reingemacht und in B2 kann etwas eingetragen werden. Drückt man hier (B2) nach der Eingabe Enter...Wird in B3 gesprugen. B2 ist dann geschützt.


Hintergrund: Es soll eine Reihenfolge beim Eintragen in die Zellen eingehalten werden.


Geht so etwas umzusetzen? ??


Danke

Betrifft: AW: Blattschutz Arbeitsmappe -Aufheben Zelle
von: MatthiasG
Geschrieben am: 02.10.2020 01:22:15

Hallo Markus,

wenn du sowieso mit Makros arbeiten willst: Was spricht in dem Fall gegen ein UserForm?

Gruß Matthias

Betrifft: AW: Blattschutz Arbeitsmappe -Aufheben Zelle
von: Herbert_Grom
Geschrieben am: 02.10.2020 16:28:15

Hallo Markus,

das ist doch ganz einfach:

Das Sheet ist mit Passwort gesichert. Die Zelle B1 ist "unlocked". Dann sollte es mit diesem Code klappen:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Column = 2 Then
      ActiveSheet.Unprotect "pw"
         Cells(Target.Row + 1, 2).Locked = False
         Cells(Target.Row + 1, 2).Select
         Cells(Target.Row, 2).Locked = True
      ActiveSheet.Protect "pw"
      ActiveSheet.EnableSelection = xlUnlockedCells
   End If
End Sub
Servus

Betrifft: AW: Blattschutz Arbeitsmappe -Aufheben Zelle
von: Markus Lehmann
Geschrieben am: 03.10.2020 08:42:43

Hallo Herbert,

vielen Dank für Deine Antwort.

Nun habe ich noch ein paar Änderungen in meiner Tabelle gemacht.

Ist es auch möglich, dass ich meine 1. "unlocked-Zelle" ab B5 starte? Dann sollen Eingaben nacheinander bis B10 gemacht werden können. Wurde bei B10 die Eingabe mit Enter abgeschlossen, springt die aktive Zelle zu D5. Hier kann man wieder bis D10 Eingaben machen und danach kann man bei F5:F10 wieder seine Eingaben machen.

Also den o.g. Code anwenden, aber für mehrere Zellen bzw. Bereiche, welche nicht direkt nebeneinander liegen, sondern vorher festgelegt werden. Hier: B5:B10, D5:D10 und F5:F10

Ist das auch möglich?

Ansomstem klappt der o.g. Code mit Beginn B1 super.

Betrifft: AW: Blattschutz Arbeitsmappe -Aufheben Zelle
von: Herbert_Grom
Geschrieben am: 03.10.2020 11:07:32

Hallo Markus,

ich gehe davon aus, dass nur die Zelle B5 nicht gesperrt ist. Dann sollte es mit dem folgenden Code klappen:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Column = 2 Or Target.Column = 4 Or Target.Column = 6 Then
      ActiveSheet.Unprotect "pw"
         If Target.Column = 6 And Target.Row = 10 Then
            Range("B5").Locked = False
            Range("B5").Select
            Cells(Target.Row, Target.Column).Locked = True
            GoTo ende
         End If
         If Target.Row = 10 Then
            Cells(Target.Row, Target.Column).Offset(-5, 2).Locked = False
            Cells(Target.Row, Target.Column).Offset(-5, 2).Select
            Cells(Target.Row, Target.Column).Locked = True
            GoTo ende
         End If
         
         Cells(Target.Row + 1, Target.Column).Locked = False
         Cells(Target.Row + 1, Target.Column).Select
         Cells(Target.Row, Target.Column).Locked = True
ende:
      ActiveSheet.Protect "pw"
      ActiveSheet.EnableSelection = xlUnlockedCells
   End If
End Sub
Servus