Notifications
Clear all

Executar macro em planilha bloqueada

2 Posts
2 Usuários
0 Reactions
525 Visualizações
(@izmenezes)
Posts: 1
New Member
Topic starter
 

olá, nao estou conseguindo fazer com que o VBA funcione com a planilha bloqueada. alguem poderia me ajudar? ja tentei de muitas formas, porem sou leigo e nao entendo oque significão as mensagens de erro.
segue VBA:

Sheets("tabela negociaçào").Unprotect Password:="senha"
Dim Linha As Long 'Variavel global
'Função que colore a linha da celula atualmente selecionada
Private Sub Workbook_Activate()
On Error Resume Next
Linha = ActiveCell.Row 'Variavel global recebe a o numero da linha atualmente selecionada
Range(Cells(Linha, 2), Cells(Linha, 7)).Interior.ColorIndex = 6 'Destaca linha
End Sub

'Função para limpar a linha antes de colorir a proxima selecao
Private Sub Workbook_Deactivate()
On Error Resume Next
Range(Cells(Linha, 2), Cells(Linha, 7)).Interior.ColorIndex = xlNone 'limpa a cor anterior
End Sub

'Chamada das respectivas funções toda vez que uma nova célula é selecionada
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

Call Workbook_Deactivate
Call Workbook_Activate
End Sub
Sheets("tabela negociação").Protect Password:="senha"
End Sub

 
Postado : 26/08/2015 2:12 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Deveria ter colocado quais Mensagens de Erro está recebendo e em qual das linhas, ficaria mais fácil identificar, mas olhando as rotinas, suponho que o erro se de por estar querendo alterar as celulas na aba protegida qdo seleciona as mesmas então tem de Desproteger primeiro, desta forma ou você cria duas rotinas, uma para Proteger e outra para Desproteger e faz chamada a elas ou adiciona a linha abaixo no inicio das rotina Activate e Deactivate :
'Desprotege a aba
ActiveSheet.Unprotect Password:="senha"

Apos as alterações terá de proteger novamente.
[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 27/08/2015 11:08 am