Notifications
Clear all

Como apagar apenas as células desbloqueadas em uma planilha.

10 Posts
3 Usuários
0 Reactions
3,506 Visualizações
(@dlopes)
Posts: 5
Active Member
Topic starter
 

Boa noite pessoal!

Gostaria de saber como posso fazer uma macro que apague determinadas células desbloqueadas em uma planilha onde possuem células bloqueadas e desbloqueadas. Lembro que as células desbloqueadas estão em diversas colunas e linhas da planilha e quero somente apagar as que estão desbloqueadas.
Fico no aguardo da ajuda de vocês!

 
Postado : 26/03/2014 3:08 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Não ficou muito claro.

Vc quer apagar todas as que estão desbloqueadas? Ou existe algum critério?

para apagar, basta usar o comando:

Range("A1:C3").Clearcontents

 
Postado : 26/03/2014 3:11 pm
(@dlopes)
Posts: 5
Active Member
Topic starter
 

Vou tentar ser mais claro!
Tenho uma planilha com diversos dados em diversas células. Alguma células são bloqueadas, pois não são editáveis e outras células são desbloqueadas, pois são editadas com frequência.
Essas células desbloqueadas são as que quero apagar! Porém são muitos os campos em que elas se encontram e por isso estava precisando de uma macro que identificasse as células desbloqueadas e as apagassem nesta planilha.

 
Postado : 26/03/2014 3:17 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde DLopes

Experimente usar este código:

Sub LimparDesbloquedas()
    Dim rg As Range
    For Each rg In ActiveSheet.UsedRange
    If rg.Locked = False Then rg.ClearContents
    Next rg
End Sub

Dê retorno.

Se a resposta foi útil, clique na mãozinha que fica do lado da ferramenta Citar.

At.te

 
Postado : 26/03/2014 3:27 pm
(@dlopes)
Posts: 5
Active Member
Topic starter
 

Obrigado pela ajuda!
A macro em questão me ajudou em partes...
Agora eu precisaria selecionar a parte da planilha em que eu quero que o comando de apagar busque e não na planilha toda....
Ex: Apagar todas as células desbloqueadas entre "C44:DA45".

De qq forma já agradeço a ajuda!!!!!

 
Postado : 26/03/2014 3:33 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Edit: o Patropi foi mais rápido que eu, com um código parecido.

Só aproveitei pra já alterar o código para apagar a seleção

se as células já estão bloqueadas, não precisa nem verificar.

Mandando apagar todas as células 1 a 1, vc vai ter um erro quando o excel encontrar uma célula bloqueada, ignorando e prosseguindo, vai apagar somente as desbloqueadas:

Sub Apaga_e_Ignora_Bloqueada_GT()
Application.ScreenUpdating = False
On Error Resume Next
For Each cell In Selection
cell.ClearContents
Next
Application.ScreenUpdating = True
End Sub

Se vc enviasse um modelo, talvez desse pra bolar alguma coisa melhor

 
Postado : 26/03/2014 3:36 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

DLopes

Para agradecer clique na mãozinha que fica do lado da ferramenta Citar.

At.te

 
Postado : 26/03/2014 3:42 pm
(@dlopes)
Posts: 5
Active Member
Topic starter
 

Pessoal, novamente agradeço a paciência de vcs!!!!

Lembro que preciso incluir um "RANGE" na macro pois eu quero apagar as células compreendidas entre "C44:DA45" e não as planilha toda!
De qq forma já me ajudou bastante todas as resposta de vcs!!!
Mas pra fechar com chave de ouro só preciso de mais esta dica!!!

 
Postado : 26/03/2014 3:46 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

DLopes
Experimente este código:

Sub Limpar()
Dim c As Range
For Each c In Sheets(1).Range("C44:D45")
  If c.Locked = False Then
    c.Value = ""
  End If
Next

End Sub

At.te

 
Postado : 26/03/2014 3:49 pm
(@dlopes)
Posts: 5
Active Member
Topic starter
 

Obrigado Patropi!!!
Excelente ajuda!!!

Deu certo!!!

 
Postado : 26/03/2014 4:03 pm