Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Dúvidas sobre as ferramentas Power Query, Power Pivot, Power View, Power Maps. Dúvidas sobre Power BI use a sessão específica
  • Avatar do usuário
#68976
Fala galera.

Depois de um tempo pesquisando parece que conseguir um exemplo decente sobre como utilizar o evento de tabela de planilha obtida de fontes de dados externa com Power Query; porém ainda não entendi como manusear esse evento.

Como resultado de minhas pesquisas obtive a informação que o evento deveria ser inserido em módulo de classe onde poderia ser melhor reaproveitado; segue abaixo o que foi feito.

No modulo de classe inseri isso:
Código: Selecionar todos
Private WithEvents qtCustom As QueryTable

Public Function Initialise(qtInput As QueryTable)
    Set qtCustom = qtInput
End Function

Private Sub qtCustom_AfterRefresh(ByVal Success As Boolean)
    '   After Refresh
    MsgBox "Tabelas atualizadas com sucesso!!", vbInformation, "Table Att Successfully"
    
End Sub
No modulo do meu programa tenho esse código:
Código: Selecionar todos
Private Sub btn_att_Click()

    shtALL.Activate
    shtALL.ListObjects("ALL").QueryTable.Refresh
         
    shtNCM.Activate
    shtNCM.ListObjects("NCM").QueryTable.Refresh

'Antes de chegar na próxima linha entendo que a msgbox do módulo de classe deveria ser executada (não consegui vê 'ainda quantas vezes ela seria apresentada, pois se o evento identificar toda atualização, talvez isso seja um problema,'' 'pois o ideal seria que a msgbox fosse exibida ao final de todas atualizações), porém a msgbox do evento não executa; dá 'aquela travadinha, pois os dados têm uma certa quantidade, mas ao final a msgbox não é emitida como esperado.

Frm_Processar.btn_ncm = True

End Sub
Se alguém já tiver passado por isso e puder contribuir, então desde já fico muito grato pela interação...vlw
Editado pela última vez por AMORIM123 em 26 Mar 2022 às 12:48, em um total de 1 vez.
#69048
Bem esse assunto parece não ser muito abordado. Não tive muito sucesso aqui no fórum e em outros fóruns em português. Nos fóruns gringos como o do Mr.Excel a galera também tem muita dúvida sobre como utilizar a funcionalidade do evento AfterRefresh. Não consegui usar ele, mas consegue resolver meu problema que era identificar a atualização das minhas tabelas e fazer algo após.

Basicamente vc só precisa saber sobre o conceito Sincronismo VS Assincronismo nas atualizações de QueryTable.

O melhor conteúdo falando sobre foi a live do Ronan Vico com Fábio Gatti ( https://www.youtube.com/watch?v=uereL8NxPng ) . A live não é concentra apenas nisso assunto, mas em algum momento o assunto é abordado e dá pra ter um insight sobre.

Ficou assim minha solução:
Código: Selecionar todos
Private Sub btn_att_Click()


On Error GoTo TableRefreshFailed
    
    shtALL.Activate
    shtALL.ListObjects("ALL").QueryTable.Refresh BackgroundQuery:=False
    
     
    shtNCM.Activate
    shtNCM.ListObjects("NCM").QueryTable.Refresh BackgroundQuery:=False


MsgBox "Tabelas atualizadas com sucesso!!", vbOKOnly

With Frm_Processar

    .txt_xmlnfe.Value = ""
    .txt_xmlcte.Value = ""
    .txt_arq.Value = ""

    .btn_xmlnfe.Enabled = True
    .btn_xmlcte.Enabled = False
    .btn_arq.Enabled = False
    .btn_att.Enabled = False
    .btn_ncm.Enabled = True
    
End With

Exit Sub
TableRefreshFailed:
MsgBox "Possívelmente o caminho selecionado podera não conter arquivos de seu tipo " & Chr(13) & _
"Por favor, verifique o tipo de arquivo informado e tente novamente. Caso o problema " & Chr(13) & _
"persista, procure o Administrador", vbCritical, "Atenção!"
Err.Clear
On Error GoTo TableRefreshFailed
Resume Next
    
End Sub

=SE(MÊS(A1)<7;"1º sem&a[…]

Bom Dia Senhores. Tenho uma macro que preciso dei[…]

Free relationships without drama and obligations. […]

Girar Imagem e Zoom

Boa noite Teria alguma forma de dar um "[…]

Valeu. Muito Obrigado!!!!!!!!

Pessoal, Ao clicar no botão Copiar (Guia C[…]

Procv com serro em vba

Resolvido

Bom dia, pessoal! com a data de nascimento e data […]

Estamos migrando para uma comunidade no Discord