Ir ao conteúdo
  • Cadastre-se

Excel VBA_Exportando PDF com condição SIM ou NÃO


Ir à solução Resolvido por RafaVillani,

Posts recomendados

Boa Noite!

Tenho uma planilha com 5601 linhas e um botão OCULTAR que serve para OCULTAR AS LINHAS BRANCAS mantendo apenas as preenchidas.

Tudo que eu preciso é que ao clicar neste botão, o excel oculte as linhas não preenchidas e logo depois, PERGUNTE SE DESEJA GERAR O ARQUIVO PDF PARA IMPRESSÃO ou não.

Optando por SIM, o arquivo é gerado automaticamente.

Optando por NÃO, apenas executa a ocultação das linhas brancas.

Estou utilizando o código abaixo, e apesar de estar demorando muito para rodar a macro, ele até executa e gera o arquivo porém, ele não mantem oculta as linhas e está gerando um relatório apenas da primeira página.

Se alguém puder, me auxiliar, ficarei grato.

Segue código que estou utilizando:

Citação

Private Sub OcultarLinhasControleNF_Click()
    Sheets("CONTROLE DE NF").Unprotect "12345"
    OcultarLinhasControleNF.BackColor = &H0&
        Application.ScreenUpdating = False
    For Each xRg In Range("a4:a5601")
        If xRg.Value = "" Then
            xRg.EntireRow.Hidden = True
        End If
Next xRg
    ReativarLinhasControleNF.Enabled = True
    OcultarLinhasControleNF.Enabled = False
    
Selection.End(xlDown).Select
    ActiveWindow.SmallScroll Down:=-102
    If MsgBox("DESEJA GERAR ARQUIVO EM PDF PARA IMPRESSÃO?" & Chr(13) & Chr(13), vbYesNo + vbQuestion) = vbYes Then
    ChDir _
        "C:\Users\guicr\Desktop\SAE\SAE_Gestão de Processos & Horas\SAE_Gestão de Processos"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\guicr\Desktop\SAE\SAE_Gestão de Processos & Horas\SAE_Gestão de Processos\" & Range("a1") & "_" & Format(Now, "yyyymmdd_hhmmss") _
        , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, OpenAfterPublish:=True
    Rows("4:5601").EntireRow.Hidden = False
    OcultarLinhasControleNF.Enabled = True
    ReativarLinhasControleNF.Enabled = False
    End If
    Range("a5602").Select
Sheets("CONTROLE DE NF").Protect "12345"
End Sub

 

Link para o comentário
Compartilhar em outros sites

Em 06/03/2021 às 22:50, RafaVillani disse:

Amigo, troque seu código na parte do msgbox por esse.

 


Dim resposta as interger

resposta = msgbox "Deseja gerar arquivo para impressao?", vbyesno
if resposta = vbyes then
'seu codigo aqui
else
'seu codigo aqui
end if

 

Resolvido meu amigo Rafa.

Muito obrigado.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...