Estou utilizando esse código para registrar todas as alterações que acontecem na minhas planilhas
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim wsHist As Worksheet, Rng As Range
Set wsHist = Sheets("História")
Set Nome = CreateObject("Wscript.Network")
If Sh Is wsHist Then Exit Sub
Set Rng = wsHist.Range("A" & Rows.Count).End(xlUp).Offset(1)
With Rng
.Value = Now
.Offset(, 1) = Sh.Name
.Offset(, 2) = Target.Address
.Offset(, 4) = Nome.UserName
.Offset(, 5) = Nome.ComputerName
If Target.Cells.Count > 1 Then
.Offset(, 3) = "Valores Alterados"
Else
.Offset(, 3) = Target.Formula
End If
End With
End Sub
Porem eu gostaria de proteger a planilha Historia, quando eu coloco os códigos no VBA ele acusa um erro. acredito que pelo fato do codigo não esta entendendo que deve desbloquear executar e depois bloquear novamente.
Proteção do Codigo Priveite SUB
em VBA
Postado
Pessoal, tudo bem?
Estou utilizando esse código para registrar todas as alterações que acontecem na minhas planilhas
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim wsHist As Worksheet, Rng As Range
Set wsHist = Sheets("História")
Set Nome = CreateObject("Wscript.Network")
If Sh Is wsHist Then Exit Sub
Set Rng = wsHist.Range("A" & Rows.Count).End(xlUp).Offset(1)
With Rng
.Value = Now
.Offset(, 1) = Sh.Name
.Offset(, 2) = Target.Address
.Offset(, 4) = Nome.UserName
.Offset(, 5) = Nome.ComputerName
If Target.Cells.Count > 1 Then
.Offset(, 3) = "Valores Alterados"
Else
.Offset(, 3) = Target.Formula
End If
End With
End Sub
Porem eu gostaria de proteger a planilha Historia, quando eu coloco os códigos no VBA ele acusa um erro. acredito que pelo fato do codigo não esta entendendo que deve desbloquear executar e depois bloquear novamente.
Muito obrigado pela ajuda