By StephanieS na sexta-feira, 18 de março de 2022
Postado em Excel
Respostas 3
Gostos 0
Visualizações 9.9K
Votos 0
Estou montando uma planilha para dados de tendências para testes analíticos de produtos químicos. Eu gostaria que cada linha de dados fosse bloqueada assim que a transcrição desses dados fosse verificada pelo revisor. Eu sou capaz de bloquear uma única linha usando este código no VBA:

Private Sub Worksheet_Change (ByVal Target As Range)
Se Range("X3") = "Não" Então
Range("B3:W3").Bloqueado = False
ElseIf Range("X3") = "Sim" Then
Range("B3:W3").Bloqueado = Verdadeiro
Se acabar
End Sub

A coluna X contém uma lista suspensa com "Sim" e "Não" como as duas opções. Gostaria que cada linha de dados, à medida que fosse adicionada à planilha, fosse bloqueada assim que o revisor selecionar sim nesta coluna para garantir que nenhuma alteração não intencional seja feita nos dados anteriores. Isso é possível sem ter que repetir o código sobre para cada linha indefinidamente?
Olá StephanieS,

Por favor, tente o código abaixo, se você tiver mais alguma dúvida, não hesite em me perguntar.

Amanda

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
·
anos 2 atrás
·
0 Curtiu
·
1 Votos
·
0 Comentários
·
Também preciso que seja capaz de alterar o status dessas células de desbloqueadas para bloqueadas enquanto a planilha estiver protegida, caso contrário, esse recurso é inútil.
·
anos 2 atrás
·
0 Curtiu
·
0 Votos
·
0 Comentários
·
Muito obrigado! Esse código funcionou perfeitamente. Eu ainda sou muito novo no VBA, então eu realmente aprecio sua ajuda!
·
anos 2 atrás
·
0 Curtiu
·
0 Votos
·
0 Comentários
·
Ver postagem completa