Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

3nio

Bloquear Linha Excel 2010

Mensagens Recomendadas

3nio

Boa tarde

Sou novo neste forum e agradeço desde já qualquer ajuda que me possam dispensar.

Tenho uma planilha (Peninsula 2011) com 43 colunas (A até BK) e com 5905 linhas.

O que pretendo é que quando for inserido qualquer valor numerico na celula C todas as celulas a partir daí e na mesma linha fiquem bloqueadas.

Por exemplo, ao inserir o valor 5500 na celula C5, bloquear tudo da D5 até à BK5 para evitar futura alteração de dados.

Muito obrigado pela atenção.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
FreiNando

Conheço uma forma usando VBA.

Selecionas as células que vais usar e marcas como não protegidas.

Depois no editor VBA e na folha, digo planilha, inseres o seguinte código:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 Then '3=coluna C
	If Target.Value = "" Then
		Me.Unprotect ' Password é optional
		Range(Target.Offset(0, 1), Target.Offset(0, 40)).Locked = False
		Me.Protect
	Else
		Me.Unprotect
		Range(Target.Offset(0, 1), Target.Offset(0, 40)).Locked = True
		Me.Protect
	End If
End If
End Sub

Não é à prova de fogo, mas podes ajustar para o que pretendes, inclusive colocar uma password e depois bloquear o projecto VBA com password também.


O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
3nio

Boa tarde FreiNando

Esperimentei o seu codigo e somente adicionei a password, pois a planilha por defeito encontra-se protegida para poder bloquear algumas colunas (que têm formulas)

Efectivamente o seu codigo funciona na perfeição, bloqueando toda a linha ao inserir algo na celula da coluna "C".

Só lhe pedia mais uma pequena ajuda para que, quando a celula da coluna "C" estiver vazia, as colunas com formulas continuem bloqueadas (colunas "F", "M", "X" e "AS"). Devia ter referido isto de inicio, peço desculpas pelo esquecimento.

Desde já um muito obrigado pelo apoio.

Neste momento o codigo está assim:

Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Column = 3 Then '3=coluna C
       If Target.Value = "" Then
           Me.Unprotect Password:="secret"
           Range(Target.Offset(0, 1), Target.Offset(0, 40)).Locked = False
           Me.Protect Password:="secret"
       Else
           Me.Unprotect Password:="secret"
           Range(Target.Offset(0, 1), Target.Offset(0, 40)).Locked = True
           Me.Protect Password:="secret"
       End If
   End If
End Sub

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
FreiNando

Tem de colocar mais intruções ficando :

Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Column = 3 Then '3=coluna C
       If Target.Value = "" Then
           Me.Unprotect Password:="secret"
           Range(Target.Offset(0, 1), Target.Offset(0, 40)).Locked = False
           'não desproteger estas:
           Range("F" & Target.Row).Locked = True
           Range("M" & Target.Row).Locked = True
           Range("X" & Target.Row).Locked = True
           Range("AS" & Target.Row).Locked = True
           Me.Protect Password:="secret"
       Else
           Me.Unprotect Password:="secret"
           Range(Target.Offset(0, 1), Target.Offset(0, 40)).Locked = True
           Me.Protect Password:="secret"
       End If
   End If
End Sub

E por defeito colocar essa colunas protegidas.


O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Izabela Cristina Ribeiro
Em 30/10/2010 às 13:44, FreiNando disse:

Tem de colocar mais intruções ficando :

 


Private Sub Worksheet_Change(ByVal Target As Range)
   If Target.Column = 3 Then '3=coluna C
       If Target.Value = "" Then
           Me.Unprotect Password:="secret"
           Range(Target.Offset(0, 1), Target.Offset(0, 40)).Locked = False
           'não desproteger estas:
           Range("F" & Target.Row).Locked = True
           Range("M" & Target.Row).Locked = True
           Range("X" & Target.Row).Locked = True
           Range("AS" & Target.Row).Locked = True
           Me.Protect Password:="secret"
       Else
           Me.Unprotect Password:="secret"
           Range(Target.Offset(0, 1), Target.Offset(0, 40)).Locked = True
           Me.Protect Password:="secret"
       End If
   End If
End Sub
 

 

E por defeito colocar essa colunas protegidas.

Olá, Freinando

Tudo bem? 

Você poderia me ajudar a criar um VBA? 

Criei uma planilha onde diversas pessoas terão acesso em uma rede.

Preciso que a planilha fique protegida da seguinte forma: 

È uma planilha de controle de requisição e controle de compras e as pessoas vão preenchendo manualmente conforme as necessidades de cada unidade ou centro de distribuição. 

Por exemplo: 

Eu preenchi a planilha da linha 2 . Preenchida da celula A02 até O2. 

Assim que eu efetuei o preenchimento da linha ela precisa ser bloqueada automaticamente, para que ninguém possa apagar os dados. 

Porém a linha  de abaixo, precisa estar desbloqueada para que as pessoas efetuem o preenchimento da linha, e assim sucessivamente. 

Consegue me ajudar com esse caso? 

Obrigada! 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.