Ir para conteúdo
Fórum Script Brasil
  • 0

LOOP PARA GERAÇÃO DE PDFs (Com timer)


kosciukdeh

Pergunta

Boa tarde, Pessoal.

Estou criando uma planilha para gerar um tipo de Lâmina para Fundos de Investimento aqui na minha empresa, fiz todo o layout e busco as informações de um site externo por meio de um AddIn disponibilizado por esse site compatível com o Excel. Logo, fiz uma Macro com um Loop For Next junto com o Application.OnTime (para esperar alguns segundos antes de gerar o pdf, para dar tempo de puxar as informações do AddIn do site externo), já o Loop For Next serve para ir trocando de fundos, pois quero que gere o PDF de vários fundos (cerca de 200). Depois, esse Application.OnTime redireciona para uma outra macro que arruma os formatos do PDF e depois gera o PDF e salva em uma pasta apropriada. O grande problema é que depois de gerar o PDF, o Loop For Next da outra macro não continua, ou seja, só estou conseguindo gerar 1 lâmina.

O que poderia ser feito para arrumar isso? Utilizar um GoTo na macro de gerar o PDF para voltar para a macro com o Loop? Mas isso não resetaria a variável de contagem e geraria a mesma lâmina para sempre?

Estou aberto para sugestões, vou passar uma planilha fictícia do meu problema para ver se vocês conseguem me ajudar, pois não posso enviar a planilha real por conta das informações da empresa.

Link Planilha Fictícia: https://www.dropbox.com/sh/opssmhehqgsxgii/AAC7UHnD02A7U36VQJRpyZPMa?dl=0

Notem que a planilha está sem nenhum tipo de formula, pois colei tudo como valor para mostrar a vocês, o que precisa ser feito é: Todos os fundos da Aba "FUNDOS EMPRESA" na coluna D, devem passar um por um para a Aba "LÂMINA" na célula W1, depois esperar 59 segundos e em seguida gerar o PDF e salvar na pasta padrão, depois voltar para o próximo fundo e repetir o processo até que se encerrem os fundos.

As macros utilizadas foram:

Sub auto_open()

For A = 1 To 5

Worksheets("LÂMINA").Range("W1") = Worksheets("Fundos SMI").Cells(A + 3, 4)

Dim fechar As Date
fechar = Now + TimeValue("00:00:59")
Application.OnTime fechar, "fazerpdf"

Next

End Sub

 

Sub fazerpdf()

    Range("W20:W23").Select
    Selection.Copy
    Range("I20:T23").Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False

Sheets("LÂMINA").ExportAsFixedFormat Type:=xlTypePDF _
      , Filename:="S:\ASSESSORIA\Temporário\André\Melhorias\Em Andamento\Automatização das Lâminas\Lâminas\" & Range("B6") & "", OpenAfterPublish:=False

End Sub

Conto com a ajuda de vocês, agradeço desde já.

André.

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...