Logo Hardware.com.br
Eduardo Rios
Eduardo Rios Novo Membro Registrado
3 Mensagens 0 Curtidas

Bloqueio de coluna com VBA

#1 Por Eduardo Rios 19/12/2015 - 14:18
Encontrei um código na internet, cujo, função é simples: quando insiro o nome do Colaborador na coluna “H”, automaticamente, preenche a coluna “I” com data e hora e a coluna “J” com o nome de usuário que esta fazendo a alteração. O problema, é que quando bloqueio a planilha as informações das colunas I e J podem ser alteradas normalmente, e quero essa duas colunas bloqueadas.
Em anexo, segue a planilha e um pdf explicando melhor.


Eu não tenho conhecimento algum com Macro, VBA, Módulo ou qualquer coisa avançada do Excel. Mas, acredito que seja possível ser feito de alguma forma, e o que eu procuro na internet não funciona. Acredito, que eu esteja montando na VBA de forma errada.

Se alguem puder me ajudar, ficaria muito grato.

Atte,

Anexos

Marcelo G Prudencio
Marcelo G Pr... Geek Registrado
1K Mensagens 227 Curtidas
#2 Por Marcelo G Pr...
20/12/2015 - 08:22
Veja se é assim

Fiz uma pequena alteração no codigo e protegi sem senha a planilha.

Caso tenha a intenção de proteger a planilha com senha troque a linha

unprotect

por unprotect password = "1234"


e troque

protect

por protect password = "senha"

1234 é a senha, coloque uma que lhe agrade.

Anexos

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho." - Autor Desconhecido
Simplifica que simples fica. - Nicole Tomazella.
"O Simples é Sempre Melhor Que o Complicado" - Jorge Paulo Lemann.
Eduardo Rios
Eduardo Rios Novo Membro Registrado
3 Mensagens 0 Curtidas
#3 Por Eduardo Rios
21/12/2015 - 10:01
Olá Marcelo,

Muito obrigado, sua ajuda fio muito importante para a conclusão dessa planilha, e era bem isso que eu queria.

Caso alguem queria, segue código abaixo.
  • Código Marcelo (via Comunidade Hardware);

'A cada alteração em uma célula este procedimento é executado
Private Sub Worksheet_Change(ByVal Target As Range)
' On Error GoTo TratarErro
'Desliga a escuta dos eventos temporariamente
Application.ScreenUpdating = False

Unprotect

'Identifica se a coluna está preenchida e se a coluna selecionada foi a 8
If Target.Column <> 8 Then Exit Sub

'Passa a data e hora atual e o usuário

If Range("H" & Target.Row).Value <> "" Then
Range("I" & Target.Row).Value = Now
Range("J" & Target.Row).Value = VBA.Environ("Username")
End If

'TratarErro:
Protect
'Liga novamente a escuta dos eventos
Application.ScreenUpdating = True
End Sub
--
Atte,
Marcelo G Prudencio
Marcelo G Pr... Geek Registrado
1K Mensagens 227 Curtidas
#4 Por Marcelo G Pr...
21/12/2015 - 17:34
So pra constar o que esta abaixo de End Sub em verde no codigo vc pode apagar pois foi copia de outro codigo que aproveitei e esqueci de limpar antes de postar
Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho." - Autor Desconhecido
Simplifica que simples fica. - Nicole Tomazella.
"O Simples é Sempre Melhor Que o Complicado" - Jorge Paulo Lemann.
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal