Compartilhar via

Melhor maneira de atualizar Power Query + Pivot Table

Anônima
2024-09-06T18:21:42+00:00

Olá,

Eu tenho um arquivo Excel local que tem duas Power Queries que pega dados de outros dois arquivos Excel que estão no SharePoint. Baseado nestes dois arquivos, tenho algumas Pivot Tables e alguns gráficos baseados nas PTs.

Criei um botão para atualizar as Power Queries, assim atualizando as PTs e os gráficos com o seguinte comando:

ThisWorkbook.RefreshAll

Porém não está funcionando como eu gostaria. Acredito que este comando está atualizando tudo em paralelo. Então quando as PTs estão sendo atualizadas, o Excel ainda não carregou toda a informação do SharePoint. Neste caso, tenho que apertar novamente para que os dados sejam atualizados nas PTs em consequentemente os gráficos.

Qual seria o melhor comando para:

  1. Atualizar primeiro as Power Queries
  2. Atualizar as PTs e consequentemente os gráficos

Obrigado!

Microsoft 365 e Office | Excel | Para empresas | Windows

Pergunta bloqueada. Essa pergunta foi migrada da Comunidade de Suporte da Microsoft. É possível votar se é útil, mas não é possível adicionar comentários ou respostas ou seguir a pergunta.

0 comentários Sem comentários
Resposta aceita pelo autor da pergunta
  1. Anônima
    2024-09-07T09:20:49+00:00

    Esta resposta foi traduzida automaticamente. Como resultado, pode haver erros gramaticais ou palavras estranhas.

    Isso pode ser causado por "atualização em segundo plano" definida como true. Você pode configurá-lo para flase e tentar novamente.

    Outra maneira é garantir que as Consultas Avançadas sejam atualizadas primeiro e, em seguida, as Tabelas Dinâmicas e os gráficos, você pode usar um script VBA para controlar a ordem das operações.

    =========================================
    Sub RefreshQueriesAndPivots()
        Dim conn As WorkbookConnection
        Dim ws As Worksheet
        Dim pt As PivotTable
    
        ' Refresh all Power Queries
        For Each conn In ThisWorkbook.Connections
            If conn.Type = xlConnectionTypeODBC Or conn.Type = xlConnectionTypeOLEDB Then
                conn.Refresh
            End If
        Next conn
    
        ' Refresh all Pivot Tables
        For Each ws In ThisWorkbook.Worksheets
            For Each pt In ws.PivotTables
                pt.RefreshTable
            Next pt
        Next ws
    End Sub
    
    1 pessoa achou esta resposta útil.
    0 comentários Sem comentários

3 respostas adicionais

Classificar por: Mais útil
  1. Anônima
    2024-09-09T19:51:10+00:00

    Entendi o problema. Aparentemente o código estava dando refresh nas Pivot Tables, mas as Power Queries estavam sendo atualizadas em background, logo quando as Pivot Tables eram atualizadas as Power Queries ainda não tinham terminado.

    Fui em cada uma das conexões e desabilitei o background refresh.

    0 comentários Sem comentários
  2. Anônima
    2024-09-09T16:52:54+00:00

    Esta resposta foi traduzida automaticamente. Como resultado, pode haver erros gramaticais ou palavras estranhas.

    É possível usar referesh duas vezes em seu código como solução alternativa?

    Você pode criar um tíquete de suporte para a Microsoft para obter mais informações sobre isso.

    Entre em contato com seu departamento de administração/TI para criar um tíquete de suporte por meio do Centro de Administração do Microsoft 365> Suporte> Nova Solicitação de Serviço. A equipe de suporte terá o canal e os recursos certos para ajudá-lo a investigar mais e descobrir exatamente por que isso causou essa situação.

    Obter suporte - Microsoft 365 Admin | Microsoft Learn

    Para saber como encontrar o administrador em sua organização, você pode ver Como encontrar meu administrador do Microsoft 365? - Suporte da Microsoft

    0 comentários Sem comentários
  3. Anônima
    2024-09-09T16:40:54+00:00

    Olá! Obrigado pela resposta!

    O código acima de fato atualizou os dados, porém com o mesmo problema do post original. Eu executei a primeira vez, a atualização foi completa, porém os dados dos gráficos não foram atualizados.

    Executei mais uma vez, ai sim os dados foram atualizados.

    O que eu percebi, na primeira execução, ele atualiza a Aba de onde o SharePoint está apontado, quando execute a segunda vez, ai sim atualizado a Pivot Table.

    ======

    Hi, thanks for your response!

    The above code indeed updated the data, but with same problem as previously stated.

    On the first time I executed this code, everything was completed, but charts were not updated. After second try, charts were updated.

    What I observed: when executing for the first time, the datasource tab (where SharePoint is connected) is updated, but PivotTable tab is not. Only on second try the PivotTable tab was updated.

    0 comentários Sem comentários