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!