Problema para printar um Formulario do VBA

Julio Cezar Francisco Martin 0 Reputation points
2024-04-11T19:26:06.9233333+00:00

Ola, quando eu executo o codigo UserForm1.Printform no meu formulário do vba, ele gera um PDF com um PrintScreen do formulário porem o formulário fica pela metade, alguem consegue me ajudar?User's image

Excel
Excel
A family of Microsoft spreadsheet software with tools for analyzing, charting, and communicating data.
1,477 questions
Office Development
Office Development
Office: A suite of Microsoft productivity software that supports common business tasks, including word processing, email, presentations, and data management and analysis.Development: The process of researching, productizing, and refining new or existing technologies.
3,508 questions
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. Claudia Dos Santos Haz (CONCENTRIX CORPORATION) 775 Reputation points Microsoft Vendor
    2024-04-16T14:32:26.0366667+00:00

    Olá Julio Cezar Francisco Martin,

    Obrigada por realizar a sua pergunta utilizando a Plataforma Q&A da Microsoft.

    O método PrintForm no VBA é usado para enviar uma imagem bit a bit de um objeto UserForm para a impressora. No entanto, como você mencionou, o formulário fica pela metade quando você gera um PDF com um print screen do formulário.

    Aqui estão algumas considerações e possíveis soluções para o seu problema:

    Tamanho do Formulário:

    O tamanho do seu formulário pode estar causando o problema. Se o formulário for muito grande para caber em uma única página, ele pode ser cortado ao gerar o PDF.
    
       Verifique se o tamanho do seu formulário se ajusta corretamente à página de impressão.
      
      **Opções Alternativas:**
      
          Em vez de usar o método **`PrintForm`**, considere outras opções para gerar o PDF completo:
         
                **Exportar para Imagem:** Você pode exportar o formulário como uma imagem (por exemplo, BMP ou PNG) e, em seguida, converter essa imagem em PDF.
               
                      **Usar Bibliotecas Externas:** Existem bibliotecas externas (como o **`PDFCreator`**) que permitem criar PDFs diretamente a partir do VBA.
                     
                     **Código de Exemplo:**
                     
                         Aqui está um exemplo de como salvar um **`UserForm`** como PDF usando a biblioteca **`PDFCreator`**:
                        
                        ```vba
                        Sub SalvarComoPDF()
    Dim pdfJob As Object
    Set pdfJob = CreateObject("PDFCreator.JobQueue")
    
    ' Abra o UserForm
    UserForm1.Show
    
    ' Capture o conteúdo do UserForm como imagem
    UserForm1.PrintForm
    
    ' Salve a imagem como PDF
    pdfJob.ConvertTo ("C:\Caminho\Para\Salvar\Seu\PDF.pdf")
    
    ' Feche o UserForm
    Unload UserForm1
    

    End Sub

                        ```
                        
                        **Ajuste de Configurações de Impressora:**
                        
                            Certifique-se de que a impressora padrão esteja configurada corretamente no seu sistema operacional.
                           
                               Selecione uma impressora ativa antes de usar o método **`PrintForm`**.
                              
    

    Lembre-se de adaptar o código acima às suas necessidades específicas.

    Atenciosamente,

    0 comments No comments