VBA

Agrupamento de células com planilha protegida no VBA

Escrito por Adriano Pataro
em 17/04/2022

Agrupamento de células com planilha protegida: neste post você vai aprender a usar a programação VBA no Excel para fazer com que a planilha possa ser agrupada e desagrupada, mesmo estando protegida.

Usando a proteção padrão, ao tentar agrupar/desagrupar os dados, o Excel exibe uma mensagem informando que não possível realizar a operação, pois a planilha está protegida.

Proteção de células no Excel

Vamos resolver este problema usando o VBA. Veja o passo a passo:

Agrupamento de células com planilha protegida

Baixe a planilha para praticar

  • Clique na guia Desenvolvedor → grupo Código → Visual Basic.
  • Será exibida a janela do VBA.
  • Clique no menu Inserir → Módulo.
Janela do VBA
  • No módulo que foi inserido, digite o código a seguir:
Sub ProtecaoPersonalizada()
Dim wks As Worksheet
Set wks = Application.ActiveSheet
wks.Protect Password:=123, Userinterfaceonly:=True
wks.EnableOutlining = True
End Sub

A propriedade Userinterfaceonly definida como verdadeiro, permite que o código altere células bloqueadas.

A propriedade EnableOutlining definida como verdadeiro, permite o uso da estrutura de tópicos.

  • Feche a janela do VBA.
  • De volta ao Excel, clique na guia Desenvolvedor → grupo Código → Macros.
  • Escolha a macro ProtecaoPersonalizada e clique em Executar.

Tente alterar algum valor das células e o Excel exibe a mensagem de planilha protegida. Porém, é possível agrupar/desagrupar os dados.

Observação: ao fechar a planilha e abrir, você terá que executar a macro novamente. Para que isso não seja necessário, coloque o código no evento Open da pasta de trabalho.

  • Para isso, clique com o botão direito do mouse sobre EstaPastaDeTrabalho e escolha Exibir código.
  • Digite o mesmo código que foi usado acima.
  • Salve e feche o arquivo. Abra novamente e veja que o recurso está funcionando.

Assista a videoaula sobre Agrupamento de células com planilha protegida

Você pode usar outros comandos para bloquear/desbloquear, dependendo de suas necessidades.

  • Para permitir o filtro, use: AllowFiltering:=True
  • Para permitir formatação de células, use: AllowFormattingCells:=True
  • Para permitir formatação de colunas, use: AllowFormattingColumns:=True

Exemplo do código:

Sub ProtecaoPersonalizada()
Dim wks As Worksheet
Set wks = Application.ActiveSheet
wks.Protect Password:=123, Userinterfaceonly:=True, _
AllowFormattingCells:=True, _
AllowFormattingColumns:=True, _
AllowFiltering:=True
wks.EnableOutlining = True
End Sub

Veja neste link, a documentação do método Protect do VBA: https://docs.microsoft.com/pt-br/office/vba/api/excel.worksheet.protect

Participe

O que achou do Agrupamento de células com planilha protegida? Deixe sua opinião nos comentários.

Se este conteúdo foi relevante para você, convide seus amigos para que eles também fiquem sabendo deste material.

Um abraço e até a próxima.

Compartilhe este conteúdo

Artigos Relacionados

Page [tcb_pagination_current_page] of [tcb_pagination_total_pages]

Adriano Pataro

Meu nome é Adriano Pataro, sou certificado pela Microsoft como Excel Specialist e autor do livro Dominando o Excel 2019. Graduando ciência de dados, trabalho como analista de dados e uso o Excel há mais de 15 anos. Em 2005 resolvi trazer meu conhecimento para a internet e compartilhar com você aqui no meu site e nas redes sociais.

  • Olá Adriano, parabéns pelo seu trabalho. Suas dicas são muito valiosas e nos ajudam muito a resolver alguns problemas do dia a dia. Tenho uma planilha de 6 abas onde 3 abas possuem agrupamento de células. Apliquei o recurso que você explicou, porém só funciona para uma das 3 abas, as outras 2 quando tendo executar o comando clicando no ícone de agrupar, aparece aquela mensagem planilha protegida que não permite utilizar este comando. Vou deixar aqui abaixo a formula que utilizei, poderia verificar onde está o erro?

    Private Sub Workbook_Open()

    Dim wks As Worksheet
    Set wks = Application.ActiveSheet

    wks.Protect Password:=”renda”, UserInterfaceOnly:=True
    wks.EnableOutlining = True

    End Sub

    Sub ProteçãoPersonalizada_Faturas()

    Dim faturas As Worksheet
    Set faturas = Application.ActiveSheet

    faturas.Protect Password:=”renda”, UserInterfaceOnly:=True
    faturas.EnableOutlining = True

    End Sub

    Sub ProteçãoPersonalizada_Orçamento()

    Dim Orçamento As Worksheet
    Set Orçamento = Application.ActiveSheet

    Orçamento.Protect Password:=”renda”, UserInterfaceOnly:=True
    Orçamento.EnableOutlining = True

    End Sub

  • {"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

    Fique por dentro das novidades

    Cadastre seu e-mail e receba os conteúdos em primeira mão.

    >

    Damos valor à sua privacidade

    Nós e os nossos parceiros armazenamos ou acedemos a informações dos dispositivos, tais como cookies, e processamos dados pessoais, tais como identificadores exclusivos e informações padrão enviadas pelos dispositivos, para as finalidades descritas abaixo. Poderá clicar para consentir o processamento por nossa parte e pela parte dos nossos parceiros para tais finalidades. Em alternativa, poderá clicar para recusar o consentimento, ou aceder a informações mais pormenorizadas e alterar as suas preferências antes de dar consentimento. As suas preferências serão aplicadas apenas a este website.

    Cookies estritamente necessários

    Estes cookies são necessários para que o website funcione e não podem ser desligados nos nossos sistemas. Normalmente, eles só são configurados em resposta a ações levadas a cabo por si e que correspondem a uma solicitação de serviços, tais como definir as suas preferências de privacidade, iniciar sessão ou preencher formulários. Pode configurar o seu navegador para bloquear ou alertá-lo(a) sobre esses cookies, mas algumas partes do website não funcionarão. Estes cookies não armazenam qualquer informação pessoal identificável.

    Cookies de desempenho

    Estes cookies permitem-nos contar visitas e fontes de tráfego, para que possamos medir e melhorar o desempenho do nosso website. Eles ajudam-nos a saber quais são as páginas mais e menos populares e a ver como os visitantes se movimentam pelo website. Todas as informações recolhidas por estes cookies são agregadas e, por conseguinte, anónimas. Se não permitir estes cookies, não saberemos quando visitou o nosso site.

    Cookies de funcionalidade

    Estes cookies permitem que o site forneça uma funcionalidade e personalização melhoradas. Podem ser estabelecidos por nós ou por fornecedores externos cujos serviços adicionámos às nossas páginas. Se não permitir estes cookies algumas destas funcionalidades, ou mesmo todas, podem não atuar corretamente.

    Cookies de publicidade

    Estes cookies podem ser estabelecidos através do nosso site pelos nossos parceiros de publicidade. Podem ser usados por essas empresas para construir um perfil sobre os seus interesses e mostrar-lhe anúncios relevantes em outros websites. Eles não armazenam diretamente informações pessoais, mas são baseados na identificação exclusiva do seu navegador e dispositivo de internet. Se não permitir estes cookies, terá menos publicidade direcionada.

    Visite as nossas páginas de Políticas de privacidade e Termos e condições.

    O site utiliza cookies para melhorar sua experiência de navegação.
    Success message!
    Warning message!
    Error message!