Alguem pode mim ajudar


#1

Oi bom dia!

Sou novo, alguem poderia mim ajudar, tenho uma planilha de gerenciamento… onde todos os dados digitados em outra planilha, sao mudados automaticamente, porem nessa planilha tenho um vba que organiza automaticamente em ordem alfabetica, porem quando eu clico em proteger alguns dados da planilha, a formula automaticamente já não funciona mais…


#2

Tente assim:
1 - Desbloqueie a planilha
2- Desbloqueie as células que possuem dados que mudam automaticamente
3- Bloqueie novamente a planilha


#3

o bloqueio funciona, o que não funciona é o vba… eu não sei como colocar dentro do vba esse bloqueio


#4

Usando a Range (“A1:B1”) como exemplo

Liberar:
Range("A1:B1").Locked = False

Bloquear:
Range("A1:B1").Locked = True


#5

esse é o codigo que faz em ordem alfabetica…
Private Sub Worksheet_Activate()
ActiveSheet.ScrollArea = “$A$7:$A$300”
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column <> 1 Then Exit Sub
Dim LR As Long
LR = Cells(Rows.Count, “A”).End(xlUp).Row
Range("$A$7:$f" & LR).Sort Key1:=Range("$A$7")
End Sub

vc pode colocar essa formula dentro deste vba não estou conseguindo…


#6

por que não posta sua planilha detalhando o problema. Seria mais fácil pra ajudar


#7

então como eu sou novo
não sei nem como enviar… tentei aqui mais surgiu a msg… usuarios novos não podem enviar anexos…


#8

tem um email que eu possa enviar…


#9

@escontec

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Count > 1 Then Exit Sub
  If Target.Column <> 1 Then Exit Sub
  Dim LR As Long
  Me.Unprotect
  LR = Cells(Rows.Count, “A”).End(xlUp).Row
  Range("$A$7:$f" & LR).Sort Key1:=Range("$A$7")
  Me.Protect
End Sub

#10

não funcionou, deu erro linha LR


#11

Veja se o erro não está na aspas do A. Refaça as aspas do A na linha do valor de LR


#12

Verifiquei, aspas esta correto, isso só acontece na linha quando eu peço para proteger planilha. se eu desproteger, funciona normalmente…


#13

andre.todimo@gmail.com


#14

Enviei no email… Gratoo


#15

voce precisa declarar umas variaveis

WS do tipo Worksheet e a outra e a Senha do tipo String e depois faz um For Each passando a variavel WS do tipo Worksheet. atribui a WS na propriedade Protect e repete o codigo para desbloqueio na outra rotina com as mesmas variaveis agora atribui ao WS a propriedade Unprotect. "As varivaveis tem que ser declarada novamente dento da outra rotina. espero ter ajudado


#16

William… obrigado, mais eu não conheço nada de VBA, apenas achei a formula na net, e adaptei para mim…


#17

da uma olhada nesse artigo aqui pode esclarecer mais a respeito do assunto.


#18

Wilian valeu pela dica, deixe eu mim expressar direito, tenho uma planilha que possui um vba que organiza na coluna A Automaticamente por ordem alfabetica… porem algumas linhas dentro da planilha quando eu protejo para que não haja digitação elas, a vba não funciona…


#19

na hora de proteger a planilha você tem que alterar na caixa de proteção para permitir que ela se movimente assim não vai da erro na formula. ou seja você vai esta permitindo que células desbloqueadas sejam selecionada, porem não editáveis apenas selecionar, sendo assim a macro e pra funcionar. veja na imagem caso essa caixa esteja marcada desmarque ela e coloca a senha e testa. Sua célula continua sem edição porem ela pode se movimentar/selecionar.


#20

William, isso esta sendo feito e essa é a macro, Private Sub Worksheet_Activate()
ActiveSheet.ScrollArea = “$A$1:$A$300”
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column <> 1 Then Exit Sub
Dim LR As Long

LR = Cells(Rows.Count, “A”).End(xlUp).Row
Liberar:
Range("$A$1:$f" & LR).Sort Key1:=Range("$A$1")
Bloquear:
Range("$A$1").Locked = True
End Sub
porem se fazer essa proteção, ela não funciona, como colocar essa proteção aqui dentro, é que não consigo fazer, para que a macro continua rodando perfeitamente.