Ir para conteúdo
Fórum Script Brasil
  • 0

Criar Tabela Dinâmica com VBA do Excel 2007


Anderson Gouveia

Pergunta

Pessoal, boa tarde!

Preciso criar uma tabela dinâmica via VBA pra uma planilha aqui do trampo.

Tentei pelo método noob ( clicar no botãozinho de gravar ....), até aí tudo beleza, mas depois, quando mando rodar a macro aparece o seguinte erro:

"Erro em tempo de execução '5':

Argumento ou chamada de procedimento inválida"

O depurador do VBA aponta pra esta entrada do código:

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Abertos!L1C1:L1048576C44", Version:=xlPivotTableVersion12).CreatePivotTable _
        TableDestination:="Totalizador!L1C1", TableName:="Tabela dinâmica4", _
        DefaultVersion:=xlPivotTableVersion12

Se alguém puder me ajudar, ficarei imensamente grato.

Abraços!

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Renato, primeiramente obrigado pela resposta.

Entendi o que você disse, eu estava selecionando TODA a planilha pra montar a tabela.

Porém, mesmo selecionando somente o intervalo onde estão os dados que eu quero por na tabela, o erro ainda aparece.

o código ficou assim:

Range("A1").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Abertos!L1C1:L278C44", Version:=xlPivotTableVersion12).CreatePivotTable _
        TableDestination:="Totalizador!L1C1", TableName:="Tabela dinâmica1", _
        DefaultVersion:=xlPivotTableVersion12

Preciso fazer alguma declaração de variável, tipo "Dim tabela as object"??

Não manjo muito de VBA mas preciso demais dessa planilha automatizada.

Abraços!

Link para o comentário
Compartilhar em outros sites

  • 0
Renato, primeiramente obrigado pela resposta.

Entendi o que você disse, eu estava selecionando TODA a planilha pra montar a tabela.

Porém, mesmo selecionando somente o intervalo onde estão os dados que eu quero por na tabela, o erro ainda aparece.

o código ficou assim:

Range("A1").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Abertos!L1C1:L278C44", Version:=xlPivotTableVersion12).CreatePivotTable _
        TableDestination:="Totalizador!L1C1", TableName:="Tabela dinâmica1", _
        DefaultVersion:=xlPivotTableVersion12

Preciso fazer alguma declaração de variável, tipo "Dim tabela as object"??

Não manjo muito de VBA mas preciso demais dessa planilha automatizada.

Abraços!

ae mano

tenta ai

-------------------------------------------------------------------------------------------------------------------------------------

Dim area As Range, intervalo As Range

' o problema é que o intervalo fica fixo, portanto jogue dentro de uma variavel o intervalo desejado.

' por exemplo: Selection, Selection.End(xlToRight)) é igual a ctrl+shift seta pro lado, e a outra seta pra baixo

Set area = Union(Range(Selection, Selection.End(xlToRight)), Range(Selection, Selection.End(xlDown)))

area.Select

ActiveWorkbook.Names.Add Name:="intervalo", RefersToR1C1:=area

ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _

"intervalo").CreatePivotTable TableDestination:="", TableName:= _

"Tabela dinâmica1"

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...