Ir ao conteúdo
  • Cadastre-se
MariPacheco

Limpar células desprotegidas

Recommended Posts

Pessoal! 
Preciso criar algo que me ajude a limpar as células desprotegidas de uma planilha.
Achei o código abaixo para uma macro no Excel mas não sei como transcrever para o Basic.

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


Agradeço desde já pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mari, boa tarde

 

Se eu entendi corretamente, você deseja apagar o conteúdo das células desprotegidas.

 

Então, uma macro construída usando a API Basic do LibreOffice ficaria assim:

 

Sub Limpar
' Primeira planilha no momento (mais a esquerda)
oPlan = ThisComponent.Sheets.getByIndex( 0 )
' Intervalo
oI = oPlan.getCellRangeByName( "C44:D45" )
' Endereço/limites do intervalo
oE = oI.getRangeAddress

' Loop nas células do Intervalo
For nL = oE.StartRow to oE.EndRow
   For nC = oE.StartColumn To oE.EndColumn
      oC = oPlan.getCellByPosition( nC,nL )

      ' Verifica se a célula está desprotegida
      If NOT oC.CellProtection.IsLocked Then
         ' 5 apaga conteúdo valor e texto da célula
         oC.ClearContents( 5 )
      End If
   Next	
Next
End Sub

Abrs.

Tiank

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prezados, por  gentileza, poderiam me ajudar nas questões abaixo?

 

1 - Como inserir uma pergunta de confirmação, por exemplo: DESEJA REALMENTE EXCLUIR TODOS OS DADOS DA PLANILHA?

 

2 - Como faço para apagar 30 planilhas iguais utilizando apenas um macro?

 

3 - Como deletar uma seção de uma vez só, por exemplo: A1: G40

 

Muito obrigado a todos pela ajuda!

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Tiank,

 

O seu código funcionou muito bem, obrigado!

 

Mas peço por favor sua ajuda, preciso que o código apague o conteúdo da célula desprotegida, inclusive se houver formula nela, já substitui o número 5 da linha oC.ClearContents( 5 ), por outros números e não consigo limpar quando o conteúdo tem o sinal de =, ou seja, formula.

 

No aguardo, agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×