Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
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

valeu Patropi! De qualquer forma muito obrigada pela atenção! Abs

Editado por MariPacheco

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

Editado por TianK
corrigir redação
  • 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!

Editado por Paulo Francisco T. Campos

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Paulo Francisco T. Campos ,

 

Para apagar também fórmula é preciso usar

oC.ClearContents( 21 )

21 é a soma de 1 (valor) + 4 (texto) + 16 (fórmula)

 

 

 

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






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

×