By StephanieS am Freitag, 18 März 2022
Veröffentlicht in Excel
Antworten 3
Likes 0
Views 9.9k
Bewertungen 0
Ich richte eine Tabelle mit Trenddaten für analytische Tests chemischer Produkte ein. Ich möchte, dass jede Datenzeile gesperrt wird, sobald die Transkription dieser Daten vom Prüfer überprüft wurde. Ich kann eine einzelne Zeile mit diesem Code in VBA sperren:

Private Sub Worksheet_Change (ByVal-Ziel als Bereich)
Wenn Range("X3") = "No" Then
Range("B3:W3").Locked = False
ElseIf Range("X3") = "Yes" Then
Range("B3:W3").Locked = True
End If
End Sub

Spalte X enthält eine Dropdown-Liste mit den beiden Optionen „Ja“ und „Nein“. Ich möchte, dass jede Datenzeile beim Hinzufügen zum Blatt gesperrt wird, sobald der Prüfer in dieser Spalte Ja ausgewählt hat, um sicherzustellen, dass keine unbeabsichtigten Änderungen an früheren Daten vorgenommen werden. Ist dies möglich, ohne den About-Code für jede Zeile auf unbestimmte Zeit wiederholen zu müssen?
Hallo StephanieS,

Bitte versuchen Sie den Code unten, wenn Sie weitere Fragen haben, zögern Sie bitte nicht, mich zu fragen.

Amandas

Private Sub Worksheet_Change(ByVal Target As Range)
Dim xPassword As String
Dim xRgAddress As String
Dim xLockRgAddress As String
Dim Row As Integer

xPassword = "123456" 'Please replace 123456 with the password that protects the spreadsheet.
On Error Resume Next

If (Target.Column <> 24) Then
Exit Sub
End If

Row = Target.Row


If Target = "Yes" Then
If ActiveSheet.Range("B" & Row & ":W" & Row).Locked = False Then
ActiveSheet.Unprotect (xPassword)
ActiveSheet.Range("B" & Row & ":W" & Row).Locked = True
ActiveSheet.Protect Password:=xPassword, DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
ElseIf Target = "No" Then
If ActiveSheet.Range("B" & Row & ":W" & Row).Locked = True Then
ActiveSheet.Unprotect (xPassword)
ActiveSheet.Range("B" & Row & ":W" & Row).Locked = False
ActiveSheet.Protect Password:=xPassword, DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
End If


End Sub
·
2 Jahren
·
0 Likes
·
1 Stimmen
·
0 Kommentare
·
Ich brauche es auch, um den Status dieser Zellen von entsperrt auf gesperrt ändern zu können, während die Tabelle geschützt ist, sonst ist diese Funktion nutzlos.
·
2 Jahren
·
0 Likes
·
0 Stimmen
·
0 Kommentare
·
Ich danke dir sehr! Dieser Code hat perfekt funktioniert. Ich bin noch sehr neu in VBA, also schätze ich Ihre Hilfe sehr!
·
2 Jahren
·
0 Likes
·
0 Stimmen
·
0 Kommentare
·
Vollständigen Beitrag anzeigen