Nos dias de hoje, a automação tem se tornado uma parte essencial de nossas vidas, simplificando tarefas e aumentando a eficiência em diversas áreas. No mundo empresarial, não é diferente. A criação de fichas de cadastro é uma atividade frequente em muitas empresas, e ter esse processo automatizado traz inúmeros benefícios. Neste artigo, vamos explorar a importância de automatizar a criação de fichas de cadastro em PDF no Excel VBA, a partir de um modelo criado em uma aba e um botão para exportar a área desejada.

Antes de entendermos os benefícios da automatização, é importante compreender o processo manual envolvido na criação de fichas de cadastro. Tradicionalmente, a criação de fichas envolvia a digitação repetitiva de informações em um documento, seguida da formatação manual para garantir uma aparência consistente e profissional. Esse processo é demorado, sujeito a erros humanos e, muitas vezes, tedioso. Além disso, quando há a necessidade de realizar diversas fichas de cadastro, o tempo gasto aumenta consideravelmente.

A automação, por outro lado, permite simplificar e acelerar esse processo. Utilizando o Excel VBA, é possível criar um modelo de ficha de cadastro em uma aba do Excel, com campos pré-formatados para preenchimento. Em seguida, é possível desenvolver um código VBA para gerar automaticamente uma ficha de cadastro preenchida com os dados fornecidos em outro local do Excel, seja em uma tabela ou em um formulário.

Uma das vantagens mais notáveis da automatização é a redução significativa do tempo necessário para criar as fichas de cadastro. Em vez de digitar manualmente as informações em cada campo, o usuário precisa apenas inserir os dados uma única vez, seja em uma tabela ou formulário pré-determinado. O código VBA pode então preencher automaticamente os campos correspondentes na ficha de cadastro, eliminando a necessidade de retrabalho.

Outra vantagem importante é a minimização dos erros humanos. Ao digitar repetidamente informações, é natural cometer erros de digitação ou copiar incorretamente os dados. Com a automação, os erros são reduzidos drasticamente, pois o processo de preenchimento é feito automaticamente pelo código VBA. Além disso, a formatação é padronizada, garantindo uma aparência consistente em todas as fichas de cadastro geradas.

Além de economizar tempo e minimizar erros, a automatização também traz maior flexibilidade ao processo de criação de fichas de cadastro. Por meio do código VBA, é possível adicionar funcionalidades extras, como validação de dados, cálculos automáticos ou até mesmo a geração de relatórios adicionais com base nas informações fornecidas. Essas melhorias adicionais não apenas tornam o processo mais eficiente, mas também podem fornecer insights valiosos para a tomada de decisões.

Uma vez que as fichas de cadastro são preenchidas com os dados desejados, é importante ter uma forma fácil e rápida de compartilhá-las. A exportação automatizada para PDF é uma solução ideal nesse caso. Com apenas um clique em um botão, o código VBA pode gerar automaticamente um arquivo PDF contendo a ficha de cadastro preenchida. Esse PDF pode ser facilmente compartilhado por e-mail, armazenado em um sistema de gerenciamento de documentos ou impresso, se necessário. Essa facilidade de distribuição economiza tempo e simplifica o processo de compartilhamento de informações.

Em resumo, a automação da criação de fichas de cadastro em PDF no Excel VBA traz inúmeros benefícios para as empresas. Ela reduz o tempo gasto na tarefa, minimiza erros de digitação, padroniza a formatação, oferece flexibilidade para adicionar funcionalidades extras e simplifica o compartilhamento das informações. Esses benefícios combinados resultam em maior eficiência operacional, economia de tempo e recursos, e melhoria na qualidade dos processos.

Portanto, investir na automatização da criação de fichas de cadastro no Excel VBA é uma decisão estratégica que pode trazer vantagens significativas para as empresas. Ao aproveitar a tecnologia disponível, é possível otimizar tarefas rotineiras, liberando tempo e recursos para atividades mais estratégicas e de maior valor agregado. A automação é a chave para impulsionar a produtividade e garantir uma operação eficiente em um mundo cada vez mais digital.

Agora que já sabemos como é muito mais prático já ter um modelo pré definido de ficha de cadastro para imprimir, nesta aula vou ensinar como você irá criar sua própria ficha de cadastro conforme a sua necessidade, desde o designer até a criação do código para emissão de PDF.

Códigos Modulo:

Sub ProcurarCadastro()

If fichaimpressao.Range("H11") = Empty Then
MsgBox "Insira um ID para fazer a busca.", vbInformation, "Informação incorreta"
Exit Sub
End If

Dim linha As Integer

linha = 4

fichaimpressao.Unprotect 123

Do Until cliente.Cells(linha, 3) = Empty

    If cliente.Cells(linha, 3) = fichaimpressao.Range("H11") Then
   
        If cliente.Cells(linha, 4) <> Empty Then fichaimpressao.Range("H14") = cliente.Cells(linha, 4) Else fichaimpressao.Range("H14") = "Não informado"    'Nome do cliente
        If cliente.Cells(linha, 6) <> Empty Then fichaimpressao.Range("H17") = cliente.Cells(linha, 6) Else fichaimpressao.Range("H17") = "Não informado"    'Data de Nascimento
        If cliente.Cells(linha, 5) <> Empty Then fichaimpressao.Range("H20") = cliente.Cells(linha, 5) Else fichaimpressao.Range("H20") = "Não informado"    'Celular
        If cliente.Cells(linha, 7) <> Empty Then fichaimpressao.Range("H23") = cliente.Cells(linha, 7) Else fichaimpressao.Range("H23") = "Não informado"    'Endereço
        If cliente.Cells(linha, 9) <> Empty Then fichaimpressao.Range("H26") = cliente.Cells(linha, 9) Else fichaimpressao.Range("H26") = "Não informado"    'Data de cadastro
        
        On Error Resume Next
        fichaimpressao.imgFicha.Picture = LoadPicture(cliente.Cells(linha, 8))
        
        If ERR.Number <> 0 Then fichaimpressao.imgFicha.Picture = LoadPicture("")
        
        fichaimpressao.Protect 123
    
    Exit Sub
    End If

linha = linha + 1
Loop

'Se rodar a planilha inteira e não localizar o id procurado então faça isso:

fichaimpressao.Range("H14").ClearContents 'Nome cliente
fichaimpressao.Range("H17").ClearContents 'Data nascimento
fichaimpressao.Range("H20").ClearContents 'Celular
fichaimpressao.Range("H23").ClearContents 'Endereço
fichaimpressao.Range("H26").ClearContents 'Data cadastro
fichaimpressao.Range("G30:H30").ClearContents 'Informações importantes
fichaimpressao.imgFicha.Picture = LoadPicture("")

fichaimpressao.Protect 123

End Sub



Sub FecharCadastro()

fichaimpressao.Unprotect 123

fichaimpressao.Range("H11").ClearContents 'ID
fichaimpressao.Range("H14").ClearContents 'Nome cliente
fichaimpressao.Range("H17").ClearContents 'Data nascimento
fichaimpressao.Range("H20").ClearContents 'Celular
fichaimpressao.Range("H23").ClearContents 'Endereço
fichaimpressao.Range("H26").ClearContents 'Data cadastro
fichaimpressao.Range("G30:H30").ClearContents 'Informações importantes
fichaimpressao.imgFicha.Picture = LoadPicture("")

fichaimpressao.Protect 123

cliente.Activate

End Sub




Sub ImprimirPDF()

Dim area                As String
Dim NomeLocalArquivo    As String

area = "$F$4:$I$31"
NomeLocalArquivo = ThisWorkbook.Path & "\" & fichaimpressao.Range("H14").Value & " " & Format(Now, "dd-mm-yy hh-mm-ss") & ".pdf"

fichaimpressao.Range(area).ExportAsFixedFormat Type:=xlTypePDF, Filename:=NomeLocalArquivo, Quality:=xlQualityStandard, INCLUDEDOCPROPERTIES:=True, IgnorePrintAreas:=False, Openafterpublish:=True

FecharCadastro

End Sub





Sub ImprimirDireto(Codigo As Integer, linha As Integer)

Application.ScreenUpdating = False

Dim area                As String
Dim NomeLocalArquivo    As String

With fichaimpressao

    .Unprotect 123

    'Busca dos dados e ajuste de formulario
    .Range("H11") = Codigo
    
    If cliente.Cells(linha, 4) <> Empty Then .Range("H14") = cliente.Cells(linha, 4) Else .Range("H14") = "Não informado"    'Nome do cliente
    If cliente.Cells(linha, 6) <> Empty Then .Range("H17") = cliente.Cells(linha, 6) Else .Range("H17") = "Não informado"    'Data de Nascimento
    If cliente.Cells(linha, 5) <> Empty Then .Range("H20") = cliente.Cells(linha, 5) Else .Range("H20") = "Não informado"    'Celular
    If cliente.Cells(linha, 7) <> Empty Then .Range("H23") = cliente.Cells(linha, 7) Else .Range("H23") = "Não informado"    'Endereço
    If cliente.Cells(linha, 9) <> Empty Then .Range("H26") = cliente.Cells(linha, 9) Else .Range("H26") = "Não informado"    'Data de cadastro

    On Error Resume Next
    .imgFicha.Picture = LoadPicture(cliente.Cells(linha, 8))
        
    If ERR.Number <> 0 Then .imgFicha.Picture = LoadPicture("")

    'Definição de impressão
    area = "$F$4:$I$31"
    NomeLocalArquivo = ThisWorkbook.Path & "\" & .Range("H14").Value & " " & Format(Now, "dd-mm-yy hh-mm-ss") & ".pdf"
    
    .Range(area).ExportAsFixedFormat Type:=xlTypePDF, Filename:=NomeLocalArquivo, Quality:=xlQualityStandard, INCLUDEDOCPROPERTIES:=True, IgnorePrintAreas:=False, Openafterpublish:=True

    'Limpeza de cadastro
    .Range("H11").ClearContents 'ID
    .Range("H14").ClearContents 'Nome cliente
    .Range("H17").ClearContents 'Data nascimento
    .Range("H20").ClearContents 'Celular
    .Range("H23").ClearContents 'Endereço
    .Range("H26").ClearContents 'Data cadastro
    .Range("G30:H30").ClearContents 'Informações importantes
    .imgFicha.Picture = LoadPicture("")
    
    .Protect 123

End With

Application.ScreenUpdating = True

End Sub


Codigo Planilha:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Column = 10 And Target.Row > 3 And Target.Value <> Empty Then
ImprimirDireto cliente.Cells(Target.Row, 3), Target.Row

End If

End Sub

Até o próximo SelfBlog!
Fique ligado no nosso canal do Youtube para mais conteúdo de Excel VBA!

Carrinho de compras