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
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord