(Modelo GRATUITO de gerador de faturas) Salvar fatura do Excel como PDF

Recentemente, tive que me registrar no Imposto sobre Mercadorias e Serviços (GST) para poder solicitar o GST sobre meus ganhos.

Assim que tiver um número de GST, você precisará apresentar sua declaração de imposto de renda todos os meses (na Índia).

Portanto, todos os meses, meu contador oficial entraria em contato comigo pedindo faturas de vendas para que ele pudesse solicitar o GST.

No meu caso, há apenas um punhado de faturas a serem criadas, pois tenho apenas algumas fontes de receita.

No entanto, como esse é um trabalho adicional, eu queria fazer isso o mais rápido possível.

Portanto, para minimizar meu esforço, criei um modelo de gerador de faturas no Excel que me permite ter todos os dados em um só lugar e, em seguida, cria automaticamente faturas em PDF para todos os pontos de dados.

Como você pode ver abaixo, tudo que preciso fazer é clicar duas vezes no nome do cliente (na coluna B), e criaria e salvaria instantaneamente a fatura no formato PDF na pasta especificada.

Você também pode modificar o modelo de fatura para se adequar ao formato da sua empresa (o que exigiria que você alterasse um pouco o código VBA - explicado abaixo).

Ele cria uma fatura conforme mostrado abaixo:

Como funciona este modelo de gerador de faturas?

Neste modelo de fatura, existem duas planilhas:

  1. Detalhes - Aqui é onde você precisa especificar os detalhes da venda / transação. Para manter tudo junto, criei uma linha para cada registro. Todos os detalhes de uma transação são registrados na linha.
  2. Modelo de fatura - Este é um modelo de espaço reservado da fatura, onde alguns campos são deixados em branco. Preciso gerar uma fatura separada para todos os registros de venda e os detalhes de cada fatura são retirados da planilha Detalhes.

Também tenho uma pasta na minha área de trabalho com o nome ‘Fatura PDFs’. Esta é a pasta onde as faturas em PDF recém-criadas são salvas.

Agora vamos ver como isso funciona:

Você precisa clicar duas vezes no nome do cliente (destacado em laranja na folha de detalhes).

É isso!

Quando você clica duas vezes no nome do cliente, ele inicia a mágica do VBA no back-end e as seguintes coisas acontecem:

  1. Os detalhes do cliente e da transação de venda são coletados e a folha de modelo de fatura é preenchida com esses detalhes.
  2. Uma nova pasta de trabalho é criada com os detalhes do cliente selecionado (no qual você clicou duas vezes).
  3. Esta pasta de trabalho é salva como PDF na pasta Fatura PDF.
  4. A nova pasta de trabalho é fechada sem salvar.

Caso haja alguma alteração nos dados da fatura, você pode clicar duas vezes no nome do cliente novamente, e uma nova fatura será criada (e isso substituirá a anterior).

Observe que os nomes das faturas são baseados no mês e no número da fatura.

Por exemplo, uma fatura com a data 15-04-2019 e o número da fatura como 1 seria salvo com o nome April2021-2022_1.pdf. Isso ajuda a controlar as faturas, caso você tenha muitas.

Você pode baixar o modelo do gerador de faturas clicando no botão abaixo:

Modificando o modelo do gerador de faturas

Criei este modelo de fatura com um formato necessário para meus arquivamentos de GST.

Se precisar de um formato diferente, você terá que editar o modelo e, em seguida, ajustar o código VBA de back-end.

Deixe-me primeiro mostrar o código e explicar como ele funciona:

Sub CreateInvoice (RowNum As Integer) Application.ScreenUpdating = False Dim wb As Workbook Dim sh As Worksheet Com shInvoiceTemplate .Range ("D10") = shDetails.Range ("A" & RowNum) .Range ("D11") = shDetails. Range ("B" & RowNum) .Range ("D12") = shDetails.Range ("C" & RowNum) .Range ("B15") = shDetails.Range ("D" & RowNum) .Range ("D15" ) = shDetails.Range ("F" & RowNum) .Range ("D16") = shDetails.Range ("G" & RowNum) .Range ("D18") = shDetails.Range ("E" & RowNum) Terminar com FPath = "C: \ Users \ sumit \ Desktop \ Invoice PDFs" Fname = Format (shInvoiceTemplate.Range ("D10"), "mmmm aaaa") _ & "_" & shInvoiceTemplate.Range ("D12") shInvoiceTemplate.Copy ActiveSheet.Name = "InvTemp" Set wb = ActiveWorkbook Set sh = ActiveSheet sh.ExportAsFixedFormat Tipo: = xlTypePDF, Filename: = _ FPath & "\" & Fname, Quality: = xlQualityStandard, IncludeDocProperties: = True, _ IgnorePrintAreas: = , OpenAfterPublish: = False wb.Close SaveChanges: = False ThisWorkbook.Activate Application.ScreenUpdating = True End Sub

O código acima é o que copia os detalhes de uma transação, preenche o modelo de espaço reservado da fatura com esses detalhes, cria uma nova pasta de trabalho e salva a nova pasta de trabalho como PDF na pasta especificada.

Se você tiver um modelo diferente ou um local de pasta diferente, será necessário modificar as partes destacadas do código a seguir:

  1. A primeira seção destacada é o que pega os detalhes da folha de detalhes e preenche o modelo de fatura. Se decidir modificar o modelo de fatura, você precisa se certificar de que está escolhendo os detalhes corretos, modificando esta parte do código.
  2. Esta linha especifica a localização da pasta. No meu caso, era uma pasta na minha área de trabalho. Você pode especificar o endereço da pasta onde deseja que as faturas sejam salvas.

Observe que renomeei o nome do código da planilha para ‘shDetails’. Fiz isso para poder usar o nome - shDetails - em meu código e ele continuará a funcionar mesmo se você alterar o nome das planilhas na planilha.

Se você quiser saber mais sobre o nome da planilha e o nome do código, dê uma olhada nisso (verifique a seção sobre como usar o nome do código da planilha).

Onde está o código na pasta de trabalho?

O código é colocado no back-end da pasta de trabalho do Excel em um módulo.

Para acessar o código, siga as etapas abaixo:

  1. Clique na guia Desenvolvedor.
  2. Clique na opção Visual Basic. Isso abrirá a janela do Editor VB.
  3. No editor do Visual Basic, clique duas vezes no Módulo para abrir sua janela de código. Você encontrará o código mencionado acima.

Caso você mesmo esteja criando um modelo, talvez não encontre o Módulo em uma nova pasta de trabalho. Você precisa clicar com o botão direito em qualquer um dos objetos da pasta de trabalho, ir para Inserir e clicar em Módulo. Isso irá inserir um novo módulo.

Fazendo a funcionalidade de duplo clique funcionar

O código acima faz todo o trabalho pesado, mas você precisa conectá-lo ao evento de clique duplo.

Isso significa que o código de macro VBA acima precisa ser executado sempre que alguém clica duas vezes nas células preenchidas na coluna de nome do cliente.

Isso pode ser feito inserindo o seguinte código na janela de código da planilha:

Private Sub Worksheet_BeforeDoubleClick (ByVal Target As Range, Cancel As Boolean) If Target.Cells "" And Target.Column = 2 Then Cancel = True Call CreateInvoice (Target.Row) End If End Sub

Aqui estão as etapas para inserir este código no back-end da planilha:

  • Clique com o botão direito na guia da planilha "Detalhes"
  • Clique na opção ‘Exibir código’.
  • Copie e cole o código acima na janela de código que aparece.

O código acima faz o seguinte:

  1. Verifica se a célula que foi clicada duas vezes possui os detalhes do cliente ou não. Ele usa a instrução IF para verificar e executar o código apenas se a célula não estiver vazia e na coluna B.
  2. Se ambos os critérios especificados forem atendidos, ele desativa a funcionalidade de clique duplo (que é para entrar no modo de edição) e chama a sub-rotina ‘CreateInvoice’, que é armazenada no Módulo. Ele também passa o valor do número da linha para a sub-rotina. Por exemplo, se eu clicar duas vezes no nome do cliente na terceira linha, ele passará 3 como o valor para a sub-rotina CreateInvoice.
  3. Assim que a sub-rotina ‘CreateInvoice’ é executada - que cria o PDF da fatura - ela termina.

Clique aqui para baixar o arquivo de modelo do gerador de faturas.

Salvar o modelo de fatura como Excel (em vez de PDF)

Se quiser salvar os modelos de fatura como arquivos do Excel e não como PDFs, você pode usar o código abaixo:

Sub CreateInvoice (RowNum As Integer) Application.ScreenUpdating = False Dim wb As Workbook Dim sh As Worksheet Com shInvoiceTemplate .Range ("D10") = shDetails.Range ("A" & RowNum) .Range ("D11") = shDetails. Range ("B" & RowNum) .Range ("D12") = shDetails.Range ("C" & RowNum) .Range ("B15") = shDetails.Range ("D" & RowNum) .Range ("D15" ) = shDetails.Range ("F" & RowNum) .Range ("D16") = shDetails.Range ("G" & RowNum) .Range ("D18") = shDetails.Range ("E" & RowNum) Terminar com FPath = "C: \ Users \ sumit \ Desktop \ Invoice PDFs" Fname = Format (shInvoiceTemplate.Range ("D10"), "mmmm aaaa") _ & "_" & shInvoiceTemplate.Range ("D12") shInvoiceTemplate.Copy ActiveSheet.Name = "InvTemp" Set wb = ActiveWorkbook Set sh = ActiveSheet sh.Name = Fname wb.SaveAs Filename: = FPath & "\" & Fname wb.Close SaveChanges: = False ThisWorkbook.Activate Application.ScreenUpdating = True End Sub

O código acima salva a fatura como uma pasta de trabalho do Excel com a mesma convenção de nomenclatura. A planilha na pasta de trabalho que contém a fatura preenchida em cada pasta de trabalho salva também tem o mesmo nome.

Você também pode gostar dos seguintes tutoriais úteis do Excel:

  • Como converter Excel para PDF usando VBA.
  • Incorpore PDF no Excel.
  • Extraia dados de PDF para Excel com este conversor.
  • Modelo de calculadora do quadro de horários do Excel.
  • Modelo de rastreador de licença do Excel.
  • Modelos grátis do Excel.

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave