none
Erro 1004 (Excel VBA) RRS feed

  • Pergunta

  • Olá amigos

    Estou criando uma macro, onde o usuário consegue filtrar uma tabela dinâmica através de um form.

    No entanto, quando executo o código, dá o seguinte erro: 

    Erro em tempo de execução '1004':

    Não é possível obter a propriedade PivotTables da classe Worksheet

    Segue o meu código:

    Private Sub checkBox1_Click()

    Sheets("Visão por Status").Activate   

    If UserForm1.CheckBox1.Value = True Then

           With ActiveSheet.PivotTables("Visão por Status").PivotFields("Status")       

    .PivotItems("Status").Visible = True   

    End With   

    End If

    End Sub


    Obrigado


    quarta-feira, 14 de maio de 2014 13:21

Todas as Respostas

  • Rodrigo,

    O seu VBA não está conseguindo localizar o seu PivotTable.

    Verifique se o nome definido para seu PivotTable é o mesmo utilizado na Sheet ?

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    quarta-feira, 14 de maio de 2014 14:49
  • Obrigado por reponder Durval, o nome está correto sim.

    Será que eu preciso colocar alguma referência ou criar algum objeto no início do meu código?

    quarta-feira, 14 de maio de 2014 16:13
  • Obrigado por reponder Durval, o nome está correto sim.

    Será que eu preciso colocar alguma referência ou criar algum objeto no início do meu código?

    Rodrigo,

    Não é necessário declarar nenhum objeto, o VBA identifica os objetos da planilha.

    Execute este script para saber exatamente como esta a estrutura de seu Sheet e do PowerPivot:

        Dim Pivot As PivotTable
        Dim Sheet As Worksheet
        
        For Each Sheet In ActiveWorkbook.Worksheets
            If Sheet.Visible = xlSheetVisible Then
                For Each Pivot In Sheet.PivotTables
                    Msgbox Sheet.Name & " - " & Pivot.Name
                Next
            End If
        Next

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    quarta-feira, 14 de maio de 2014 17:29