Ir ao conteúdo
  • Cadastre-se

Limpar células desprotegidas


Posts recomendados

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!

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

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
Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

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!

Link para o comentário
Compartilhar em outros sites

  • 3 meses depois...

@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!

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...
  • 4 semanas depois...

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades 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

×
×
  • Criar novo...