Ajuda com VBA

8 views
Skip to first unread message

Rogerio Veneroso da Fonseca

unread,
Mar 11, 2026, 7:11:19 AMMar 11
to msex...@googlegroups.com
Prezados, bom dia.

Tenho uma planilha onde faço algumas consultas em banco e gero uns relatórios e alguns desses relatórios eu salvo as imagens para enviar via whatsapp, tudo funciona perfeitamente desde que eu execute manualmente. 
Quando coloco todas as macros para executar automaticamente os gráficos são gerados em branco como se não existissem dados para eles. Já usei o application.wait aumentei o tempo de espera mas mesmo assim nao consegui fazer funcionar.
Como alternativa, assim que executo as consultas estou salvando o arquivo com outro nome e esse outro arquivo no evento open gera os gráficos corretamente, conseguem me orientar?

Atenciosamente
Rogério Fonseca

Alexandre Corrêa (ALeXceL)

unread,
Mar 12, 2026, 5:11:55 PMMar 12
to MsExcelBR
Rogério,
Boa noite.

Como não enviou anexo, fico no território das especulações.
Acredito que possa estar utilizando um userform. Nesse caso, tente utilizar o comando Userform1.Refresh para obrigar o redesenho dele antes de qualquer outra operação subsequente.

Se achar válido, poste ao menos o código.

[ ]
ALeXceL
Oliveira/MG

Rogerio Veneroso da Fonseca

unread,
Mar 13, 2026, 11:48:56 AMMar 13
to msex...@googlegroups.com
Boa  tarde, vou colocar o código que gera as imagens em branco.
Sub Geral()
'
Dim Ws, Ws1, Es2, Ws3 As Worksheet ' Variáveis do tipo planilha
Dim Caminho As String ' Variável para armazenar o diretório atual
Set Ws3 = Sheets("Resumo") ' Planilha Resumo
Set Ws2 = Sheets("Tabela Backlog") ' Planilha Tabela Backlog
' Atribui o diretório do arquivo atual
Caminho = ThisWorkbook.Path
' Atribuição da data atual para a célula C4 da planilha Resumo
Ws3.Range("C4").Value = Date
' Chamada da macro para carregar planiha Carga
Call Carga
' Chamada da macro para carregar planilha Tratativa
Call Tratativa
' Chamada da macro para carrregar
Call Hora
' Chamada da atualização da consulta De Para
ActiveWorkbook.Connections("Consulta - De Para").Refresh
' Chamado da atualização da Consulta Tratativa
ActiveWorkbook.Connections("Consulta - Tratativa").Refresh
' Chamada da atualização da Consulta Carga
ActiveWorkbook.Connections("Consulta - Carga").Refresh
' Aguarda a execução de todas as atualizações
Application.CalculateUntilAsyncQueriesDone
' Ativa a planilha Tabela BackLog
Ws2.Select
' Seleciona a célula B3
Ws2.Range("B3").Select
' Aguarda 02 segundos
Application.Wait Now + TimeValue("00:00:02")
' Atualiza a tabela dinâminca Efetividade
ActiveSheet.PivotTables("Efetividade").PivotCache.Refresh
' Atualiza a tabela dinâmica Abertura
ActiveSheet.PivotTables("Abertura").PivotCache.Refresh
' Oculta a lista de campos tabela dinâmica Abertura
ActiveWorkbook.ShowPivotTableFieldList = False
'
Application.CommandBars("Queries and Connections").Visible = False
' Aguarda 02 segundos
Application.Wait Now + TimeValue("00:00:02")
' Desabilita a caixa de mensagem do excel
Application.DisplayAlerts = False
' Esse trecho abaixo faz a exportação das imagens
Call ExportarAberturaBacklog
Call ExportarHora
Call ExportarResumo
Call ExportarTabelaBacklog
' Seleciona o diretório atual
ChDir Caminho
' Salva o arquivo atual com o nome de Fidelização Final
ActiveWorkbook.SaveAs Filename:=Caminho & "\Fidelização Final.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
' Habilita a caixa de mensagens do excel
Application.DisplayAlerts = True
' Fecha a aplicação
Application.Quit
End Sub

Já nesse outro código que coloquei no arquivo após a atualização no banco gera as imagens corretamente
Sub Imagens()
'
' Macro1 Macro
'
 Call ExportarAberturaBacklog
 Call ExportarHora
 Call ExportarResumo
 Call ExportarTabelaBacklog
 Call EnviarWhatsApp
End Sub
Por esse motivo tive que efetuar parte da rotina em um arquivo, salvar esse arquivo atualizado com outro nome e executar a macro para exportar as imagens.

Att

--
Participe deste Grupo: envie e-Mail em branco para MsExcelBR...@googlegroups.com
---
You received this message because you are subscribed to the Google Groups "MsExcelBR" group.
To unsubscribe from this group and stop receiving emails from it, send an email to msexcelbr+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/msexcelbr/de50f117-7ba8-4685-bd3d-becce4387d7bn%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages