none
Atualizar Tabela Dinâmica em Planilha Protegida RRS feed

  • Pergunta

  • Pessoal,

    Tenho uma planilha protegida com senha para evitar alterações indevidas na mesma, porém, nesta mesma planilha tenho uma Tabela Dinâmica que precisa ser atualizada, mas a opção de "Atualizar" fica oculta quando preciso utilizá-la.

    Tem alguma maneira ou macro que execute a atualização da TD sem desproteger a planilha manualmente?

    Obrigado

    quarta-feira, 14 de novembro de 2012 18:41

Respostas

  • Sub Exemplo()
        Const CsSenha As String = "SuaSenha"
        
        Dim pt As PivotTable
        ActiveSheet.Unprotect CsSenha
        For Each pt In ActiveSheet.PivotTables
            pt.RefreshTable
        Next pt
        ActiveSheet.Protect CsSenha
    End Sub

    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    quarta-feira, 14 de novembro de 2012 21:53

Todas as Respostas

  • Sub Exemplo()
        Const CsSenha As String = "SuaSenha"
        
        Dim pt As PivotTable
        ActiveSheet.Unprotect CsSenha
        For Each pt In ActiveSheet.PivotTables
            pt.RefreshTable
        Next pt
        ActiveSheet.Protect CsSenha
    End Sub

    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    quarta-feira, 14 de novembro de 2012 21:53
  • Legal, deu certo...

    Obrigado

    sexta-feira, 16 de novembro de 2012 11:32
  • Olá Felipe!! 

    Estou travada na mesma situação do Marco, tbem deu certo, porém os filtros e segmentação de dados não atualizam porque a planilha está travada, pode me ajudar a resolver isso?

    Obrigada 

    Deisi

    quinta-feira, 19 de outubro de 2017 18:57
  • Para usar a segmentação de dados você precisar permitir as seguintes opções no assistente de proteção:

    • Usar AutoFitro
    • Usar Tabela Dinâmica & Gráfico Dinâmico
    • Editar Objetos

    Complementando a resposta de Felipe Gualberto, ficaria assim:

    Sub RefreshPivotTable()
        Const CsSenha As String = "123"
        Dim TempSenha As String
        TempSenha = InputBox("Senha de Atualização:", "Aprendendo Excel")
        If TempSenha = "" Or TempSenha <> CsSenha Then Exit Sub
        
        '----------------------------------------
        'Dica de Felipe Gualberto
        Dim pt As PivotTable
        ActiveSheet.Unprotect CsSenha
        For Each pt In ActiveSheet.PivotTables
            pt.RefreshTable
        Next pt
        '----------------------------------------
        ActiveSheet.Protect CsSenha, _
                DrawingObjects:=False, _
                Contents:=True, _
                Scenarios:=True, _
                AllowFiltering:=True, _
                AllowUsingPivotTables:=True
    End Sub
    

    terça-feira, 5 de junho de 2018 18:12
  • Olá. 

    Já experimentei e funcionou, se usar a rotina na planillha onde estão as tabelas, e usar em workbook - ativate para planilha activa. Mas eu gostava que a minha folha das tabelas ficasse além de protegida oculta. Como é que faço para a rotina funcionar se eu não tiver a planilha activa. 

    Obrigada 

    segunda-feira, 8 de outubro de 2018 14:05