Olá boa tarde !
Gostaria de pedir um grande favor, além do que já me foram feitos aqui. Dentre essas ajudas, consegui aqui 2 códigos distintos que foram aplicados e funcionam super bem. Mas surgiu a necessidade de que ambos possam ser executados juntos. E definitivamente está além da minha capacidade fazer com que eles continuem sendo executados, cada um com sua função.
O primeiro código "oculta" determinadas células quando há alteração nas células "C7" ou "N40" e desde que em determinado intervalo tenha o número 0 (Zero).
Segue o código:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$7" Or Target.Address = "$N$40" Then
Application.ScreenUpdating = False
For Each cell In Range("$BW$2:$BW$110")
If cell.Value = 0 Then
cell.EntireRow.Hidden = True
Else
cell.EntireRow.Hidden = False
End If
Next
Application.ScreenUpdating = True
End If
End Sub
O segundo código protege todas as células que contenham fórmulas, permitindo alterações nas demais células da planilha.
Segue o código:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
ActiveSheet.Unprotect Password:="senha"
Cells.Locked = False
On Error Resume Next
Set rng = Cells.SpecialCells(xlCellTypeFormulas)
'Set rng = Cells.SpecialCells(XlCellTypeText) 'Text se quiser travar texto
If Err.Number > 0 Then
Set rng = Cells.SpecialCells(xlCellTypeConstants)
Else
Set rng = Union(rng, Cells.SpecialCells(xlCellTypeFormulas))
'Set rng = Cells.SpecialCells(XlCellTypeText)
End If
On Error GoTo 0
If Not rng Is Nothing Then rng.Locked = True
ActiveSheet.Protect Password:="senha"
End Sub
O PROBLEMA:
O código que oculta as linhas não consegue ocultar quando a planilha já está protegida. Essa proteção ocorre quando o segundo código é executado. Isso em tese, pois como ambos tem o mesmo evento CHANGE, tentei inserir-los na planilha e surgiu a mensagem de erro.
Minha idéia então é, executar os códigos ao mesmo tempo sem que um impeça o outro de funcionar.
A sequência seria - ocultar as células e em seguida proteger. Mas aí quando houver outra alteração nas células do primeiro código (C7 ou N40), desprotege as células, processa as informações, volta a proteger.
Imagino a loucura de como ficará esse código, mas já me ajuda demais do jeito que está.
Obrigado a todos.
Postado : 08/04/2015 12:50 pm