none
Salvar planilha em pdf automaticamente (renomeando) RRS feed

  • Pergunta

  • Boa noite

    Tenho uma planilha que roda um VBA excel que seleciono em um "combobox" um determinado tempo (horas ou min ou seg) que vai imprimindo em uma impressora "pdf" dentro do tempo selecionado. O problema e que preciso estar presente para apontar o caminho e o nome do arquivo. Gostaria de um codigo que gerasse o nome do arquivo e salvasse sem precisar da presença para apontar o caminho e nome do arquivo.

    quarta-feira, 29 de junho de 2016 00:41

Todas as Respostas

  • Paulo,

    Provavelmente você faz o processo usando uma macro.

    Poderia postar o código da macro aqui?


    http://www.ambienteoffice.com.br - http://www.clarian.com.br

    quarta-feira, 29 de junho de 2016 00:47
    Moderador
  • Segue:

    1º Parte

      Dim Time As String
        Dim trigger
        
    Sub Print_Log()    'Rotina para imprimir em pdf o Log
        If Tela_Inicial.Label8.Caption = "RUNNING" Then
            Sheet1.CommandButton1.Visible = False
            Sheet2.CommandButton1.Visible = False
            Sheet3.CommandButton1.Visible = False
            ThisWorkbook.PrintOut
            Sheet1.CommandButton1.Visible = True
            Sheet2.CommandButton1.Visible = True
            Sheet3.CommandButton1.Visible = True
            Executa 'Chama Sub Executa para contar o tempo
        End If
    End Sub

    Sub Executa()   'Rotina que executa por um determinado intervalo de tempo
        Time = Tela_Inicial.ComboBox1.Value & ":" & Tela_Inicial.ComboBox2.Value
        If Tela_Inicial.Label8.Caption = "RUNNING" Then
            trigger = Now + TimeValue(Time)
            Application.OnTime trigger, "Print_Log" 'Start Log
        Else
            Application.OnTime trigger, "Print_Log", , False 'Stop Log
        End If
    End Sub

    2º parte

    Private Sub UserForm_Initialize()
        Dim contador
        'Inicializacao das variaveis
        Tela_Inicial.Caption = "Auto Running Log"
        'Inicia a execucao do script
        Label8.Caption = Sheet1.Cells(7, 8).Value
        CommandButton2.Caption = Sheet1.Cells(7, 9).Value
        If Label8.Caption = "STOPPED" Then
            Sheet1.CommandButton1.BackColor = RGB(255, 0, 0)
            Sheet2.CommandButton1.BackColor = RGB(255, 0, 0)
            Sheet3.CommandButton1.BackColor = RGB(255, 0, 0)
        Else
            Sheet1.CommandButton1.BackColor = RGB(0, 255, 80)
            Sheet2.CommandButton1.BackColor = RGB(0, 255, 80)
            Sheet3.CommandButton1.BackColor = RGB(0, 255, 80)
        End If
        contador = 0
        While contador < 24 'HORAS
            ComboBox1.AddItem contador
            contador = contador + 1
        Wend
        contador = 0
        While contador < 60 'MINUTOS
            ComboBox2.AddItem contador
            contador = contador + 1
        Wend
        ComboBox1.Value = Sheet1.Cells(7, 10).Value
        ComboBox2.Value = Sheet1.Cells(7, 11).Value
    End Sub

    Private Sub CommandButton1_Click()
        'Print Now
        Sheet1.CommandButton1.Visible = False
        Sheet2.CommandButton1.Visible = False
        Sheet3.CommandButton1.Visible = False
        ThisWorkbook.PrintOut
        Sheet1.CommandButton1.Visible = True
        Sheet2.CommandButton1.Visible = True
        Sheet3.CommandButton1.Visible = True
    End Sub

    Private Sub CommandButton2_Click()  'Start/Stop Button
        If CommandButton2.Caption = "Stop" Then
            Label8.Caption = "STOPPED"
            CommandButton2.Caption = "Start"
            Sheet1.CommandButton1.BackColor = RGB(255, 0, 0)
            Sheet2.CommandButton1.BackColor = RGB(255, 0, 0)
            Sheet3.CommandButton1.BackColor = RGB(255, 0, 0)
        ElseIf CommandButton2.Caption = "Start" Then
            Label8.Caption = "RUNNING"
            CommandButton2.Caption = "Stop"
            Sheet1.CommandButton1.BackColor = RGB(0, 255, 80)
            Sheet2.CommandButton1.BackColor = RGB(0, 255, 80)
            Sheet3.CommandButton1.BackColor = RGB(0, 255, 80)
        End If
        Call Executa
    End Sub

    Private Sub UserForm_Terminate()
        Sheet1.Cells(7, 8).Value = Label8.Caption
        Sheet1.Cells(7, 9).Value = CommandButton2.Caption
        Sheet1.Cells(7, 10).Value = ComboBox1.Value
        Sheet1.Cells(7, 11).Value = ComboBox2.Value
    End Sub

    quarta-feira, 29 de junho de 2016 17:44
  • Ao inserir um código no fórum, utilize blocos de código. Para utilizar essa ferramenta, clique no botão cuja legenda é “Inserir bloco de código” na barra do editor de mensagens do fórum. Uma janela aparecerá onde você deverá colar seu código cru na caixa de texto à esquerda. Então, selecione a opção Vb.Net na caixa de combinação que você verá em cima à esquerda e depois clique no botão Inserir.

    ---

    Troque a instrução:

    ThisWorkbook.PrintOut


    por:

        'Escreva o nome das planilhas que deseja imprmir
        ThisWorkbook.Worksheets(Array("Plan1", "Plan2", "Plan3")).Select
        
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
                                        Filename:="c:\seu_caminho\arquivo.pdf", _
                                        Quality:=xlQualityStandard, _
                                        IncludeDocProperties:=True, _
                                        IgnorePrintAreas:=False, _
                                        OpenAfterPublish:=False
    


    http://www.ambienteoffice.com.br - http://www.clarian.com.br

    quarta-feira, 29 de junho de 2016 18:06
    Moderador
  • Desculpe postar o codigo de forma equivocada

    Vamos lá

    Estamos avançando, o detalhe agora é que ele vai gerando o arquivo e salvando em cima, estou precisando que vá salvando e preservando o outro arquivo, pode ser com outro nome.

    quarta-feira, 29 de junho de 2016 20:39
  • Filename:="c:\seu_caminho\arquivo " & Format(Now, "yyyy-mm-dd hh.mm.ss") & ".pdf"

    Troque o argumento Filename por esse mostrado acima.


    http://www.ambienteoffice.com.br - http://www.clarian.com.br

    quarta-feira, 29 de junho de 2016 22:12
    Moderador
  • Obrigado Felipe

    funcionou perfeitamente!!!!

    Abraço

    quinta-feira, 30 de junho de 2016 00:04
  • Bom dia

    Gostaria de saber se na geração do arquivo posso, ao invés de *.pdf, gerar os arquivos em *.csv ou *.xls, porque a versão do excel onde pretendo rodar a macro é 97, sendo assim seria melhor gerar nessas extensões informadas.

    Abraço

    sexta-feira, 1 de julho de 2016 14:39
  • Em outras palavras, você quer criar uma cópia com a extensão csv ou xls?

    http://www.ambienteoffice.com.br - http://www.clarian.com.br

    sexta-feira, 1 de julho de 2016 17:24
    Moderador