Boa noite Amigos do Fórum.
Estou com um problema ao carregar imagens automaticamente via VBA, utilizando a aplicação LoadPicture.
O problema é o seguinte, criei uma macro que altera campo de nome da imagem a ser carregada automaticamente (usando funções de planilha + Do While Loop), posteriormente essa macro cria e salva o aquivo .pdf em uma pasta destinada por mim, a questão é que quando rodo a macro manualmente usando F8, consigo criar os arquivos normalmente cada nome com sua respectiva imagem, porém quando rodo essa macro num botão, os arquivos são criados mas a imagem carregada é sempre a mesma do primeiro arquivo criado, é mais ou menos como se a macro rodasse tão rápido que não dá tempo da aplicação LoadPicture carregar a respectiva imagem.
Já tentei resolver adicionando um timer (parada de alguns segundos nessa parte do código) para ver se a imagem seria carregada, mas nem mesmo assim obtive sucesso. Alguém poderia me dar uma luz? Segue abaixo o código para melhor entendimento:
Sub Salvar_PDF()
Dim i As Integer '[color=#40BF80]Variavel de contagem[/color]
Dim V_Caminho As String [color=#00BF40]'Caminho onde se encontra a pasta a salvar os arquivos gerad[/color]os
Dim V_NomeArq As String '[color=#00BF40]Nome dado ao arquivo gerad[/color]o
V_Caminho = Range("R1").Value [color=#00BF40] 'C:UsersUserDownloadsTest[/color]e
i = 1
Range("L17").Value = 1 [color=#00BF40] 'Essa celula contém meu inicio da iteração Do While[/color]
Do While Range("L17").Value <= Range("N17").Value '[color=#00BF40]Celula N17 é o meu fim da iteração Do While[/color]
V_NomeArq = Range("M3").Value [color=#00BF40]'A cada iteração o nome dado ao arquivo muda para evitar criação de um arquivo apena[/color]s
Plan1.Image1.Picture = LoadPicture(Plan1.Range("M4").Value) [color=#FF0000]'Aqui a imagem é carregada com base no caminho e nome especificado que é alterada a cada iteração,nesse ponto o não carregamento acontece quando a macro é rodada no botão[/color]
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
V_Caminho & "" & V_NomeArq, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False [color=#00BF40]' Aqui é gerado e criado o arquivo em .pdf , um arquivo a cada iteração[/color]
i = i + 1
Range("L17").Value = i
Loop
End Sub
Postado : 26/08/2016 5:58 pm