Excel VBA Code zum Zeilen schützen bei Klick

Hallo zusammen,

ich habe folgendes Problem!
Ich habe ein VBA Code über eine Schaltfläche in dem ich durch abfrage einer Zelle die ganze Zeile schützen tu und den Hintergrund der ausgewählten Zelle farblich änderne.
Hier der Code:

Sub schützen()
If ActiveCell.Value = „ja“ Then
ActiveSheet.Unprotect „123“
ActiveSheet.Cells.Locked = False
ActiveCell.Interior.ColorIndex = 4
Rows(ActiveCell.Row).Locked = True
ActiveSheet.Protect „123“
End If
ActiveWorkbook.Save
End Sub

Dieses funktioniert soweit auch super.
Nur habe ich folgendes Problem.
Wenn ich eine neue Zelle in einer anderen Zeile auswähle und dort die Schaltfläche betätige wird die aktuelle Zeile auch wieder geschützt, die anderen Zeilen sind aber wieder alle aktiv und man dort etwas ändern.
Ich will das wenn die Zeile einmal geschützt ist, auch geschützt bleibt und nicht beim schützen einer anderen wieder aktiv wird.

Hoffe das mir da jemand weiterhelfen kann.

freue mich über eine Antwort
Euer Sumpfbiber

Dann darfst du halt nicht ActiveSheet.Cells.Locked = False machen, denn das gibt ja ALLE Zellen wieder frei :wink:
Warum läßt du die Zeile nicht einfach weg?

D.h. es ist beabsichtigt, dass man ein einmal abgefragtes „ja“ nicht mehr ändern kann?

Gruß,

Kannitverstan

Hallo,

Vielen dank für die schnelle Antwort.
Ich habe es auch gerad gesehen gehabt das ich den einfach nur rausnehmen muss.

Bin mit der ganzen VBA Geschichte noch ziemlich am Anfang :smile:

Problem ist somit gelöst.

Hallo,

habe erneut ein kleines Problem hoffe ich in meinem Code!!

Durch klicken der Schaltfläche tu ich verschiedene Zellen der aktiven Zeile abfragen ob bestimmte Bedingungen erfüllt sind.
Das funktioniert alles soweit super.
Wenn alle Bedingungen erfüllt sind, wird die Zeile auch geschützt.

Wenn ich gewisse eingriffe in die Tabelle vornehmen muss, und den Blattschutz manuell aufhebe, muss ich ihn beim erneuten anwählen vom Blattschutz immer wieder reinklicken.

hier mal mein gesamter Sub:

Sub schützen_Test()
'aktuelle Zeile einlesen
i = ActiveCell.Row

'Abfrage für Kennbuchstabe
ActiveSheet.Cells(i, 5).Select
If ActiveCell = "" Then
    MsgBox "Kennbuchstabe fehlt"
    Exit Sub
End If

'Abfrage für Beginn Datum
ActiveSheet.Cells(i, 11).Select
If ActiveCell = "" Then
    MsgBox "Datum 'Beginn Produktion' fehlt"
    Exit Sub
End If

'Abfrage für Beginn Uhrzeit
ActiveSheet.Cells(i, 12).Select
If ActiveCell = "" Then
    MsgBox "Uhrzeit 'Beginn Produktion' fehlt"
    Exit Sub
End If

'Abfrage für Ende Datum
ActiveSheet.Cells(i, 13).Select
If ActiveCell = "" Then
    MsgBox "Datum 'Ende Produktion' fehlt"
    Exit Sub
End If

'Abfrage für Ende Uhrzeit
ActiveSheet.Cells(i, 14).Select
If ActiveCell = "" Then
    MsgBox "Uhrzeit 'Ende Produktion' fehlt"
    Exit Sub
End If

'Abfrage für Abgegebene Zeile
ActiveSheet.Cells(i, 15).Select
If ActiveCell = "" Then
    MsgBox "Menge abgegebene Teile fehlt"
    Exit Sub
End If

'Abfrage für Kürzel
ActiveSheet.Cells(i, 16).Select
If ActiveCell = "" Then
    MsgBox "Angabe Name/Kürzel fehlt"
    Exit Sub
End If

'Abfrage für Variante
ActiveSheet.Cells(i, 21).Select
If ActiveCell = "" Then
    MsgBox "Angabe Variante fehlt"
    Exit Sub
End If

'abgeschlossene Zeile sperren
ActiveSheet.Cells(i, 2).Select
    If ActiveCell = "" Then
        MsgBox "Angabe 'ja' zum speichern fehlt"
        Exit Sub
    End If
        
    If ActiveCell = "ja" Then
        ActiveSheet.Unprotect "Mesa123"
        ActiveCell.Interior.ColorIndex = 4
        ActiveSheet.EnableAutoFilter = True
        Rows(ActiveCell.Row).Locked = True
        ActiveSheet.Protect "Mesa123"
    End If
ActiveWorkbook.Save

End Sub

Die Frage also jetzt ist:

Sobald das Makro mal durchläuft und ich den Blattschutz danach aufhebe und wieder schützen will, ist der Hacken bei „Autofilter verwenden“ wieder raus und ich muss ihn immer wieder reinmachen.

Liegt das an einem Befehl im letzten Abschnitt??

wäre super wenn mir das jemand Beantworten kann.

mfg euer Sumpfbiber

Habe aber auch gerad rausgefunden das es immer beim aufheben und schützen so ist.
Also auch ohne das Makro ablaufen zu lassen.
Ich weiß aber das ich eine andere Tabelle habe bei denen die Voranwahl was geschützt ist, immer wieder vorhanden ist und ich nicht immer neu anwählen muss.

Wie kann das sein?

ich steh voll auf den Schlauch gerad, war wohl zu viel neues heut.

Also den letzten Absatz einfach vergessen.

Es kommt wirklich nur vor wenn das Makro abläuft.