(БЕСПЛАТНЫЙ шаблон генератора счетов) Сохранить счет Excel как PDF

Недавно мне пришлось зарегистрироваться в системе налога на товары и услуги (GST), чтобы я мог подать заявку на GST с моих доходов.

Если у вас есть номер GST, вам необходимо ежемесячно подавать налоговую декларацию (в Индии).

Поэтому каждый месяц мой дипломированный бухгалтер обращался ко мне с просьбой выставить счета-фактуры, чтобы он мог подать на GST.

В моем случае нужно создать лишь несколько счетов-фактур, так как у меня всего несколько источников дохода.

Однако, поскольку это дополнительная работа, я хотел сделать это как можно быстрее.

Поэтому, чтобы свести к минимуму свои усилия, я создал шаблон генератора счетов в Excel, который позволяет мне хранить все данные в одном месте, а затем он автоматически создает счета в формате PDF для всех точек данных.

Как вы можете видеть ниже, все, что мне нужно сделать, это дважды щелкнуть имя клиента (в столбце B), и он мгновенно создаст и сохранит счет в формате PDF в указанной папке.

Вы также можете изменить шаблон счета-фактуры в соответствии с форматом вашей компании (для этого вам потребуется немного изменить код VBA - поясняется ниже).

Он создает счет, как показано ниже:

Как работает этот шаблон генератора счетов?

В этом шаблоне счета есть два листа:

  1. Подробности - Здесь нужно указать детали продажи / сделки. Чтобы все было вместе, я создал по одной строке для каждой записи. Все детали транзакции записываются в строку.
  2. Шаблон счета-фактуры - Это шаблон-заполнитель счета-фактуры, в котором некоторые поля оставлены пустыми. Мне нужно создать отдельный счет для всех записей о продажах, и детали для каждого счета взяты из рабочего листа Details.

У меня также есть папка на моем рабочем столе с названием «PDF-файлы счетов». Это папка, в которой сохраняются вновь созданные счета в формате PDF.

Теперь посмотрим, как это работает:

Вам нужно дважды щелкнуть имя клиента (выделено оранжевым цветом на листе сведений)..

Вот и все!

Когда вы дважды щелкаете имя клиента, он запускает магию VBA в бэкенде, и происходит следующее:

  1. Собираются детали для клиента и сделки продажи, и лист шаблона счета заполняется этими деталями.
  2. Будет создана новая книга, содержащая сведения о выбранном клиенте (на котором вы дважды щелкнули).
  3. Эта книга сохраняется в формате PDF в папке PDF со счетами.
  4. Новая книга закрывается без сохранения.

В случае каких-либо изменений в деталях счета-фактуры, вы можете дважды щелкнуть имя клиента еще раз, и будет создан новый счет-фактура (и он перезапишет старый).

Обратите внимание, что названия счетов-фактур основаны на месяце и номере счета-фактуры.

Например, счет-фактура с датой 15-04-2019 и номер счета как 1 будет сохранен с именем Апрель2021-2022_1.pdf. Это помогает отслеживать счета на случай, если у вас их слишком много.

Вы можете скачать шаблон генератора счетов, нажав кнопку ниже:

Изменение шаблона генератора счетов-фактур

Я создал этот шаблон счета-фактуры в формате, который мне нужен для подачи документов GST.

Если вам нужен другой формат, вам придется отредактировать шаблон, а затем настроить внутренний код VBA.

Позвольте мне сначала показать вам код и объяснить, как он работает:

Sub CreateInvoice (RowNum As Integer) Application.ScreenUpdating = False Dim wb As Workbook Dim sh As Worksheet With 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) Заканчивается на FPath = "C: \ Users \ sumit \ Desktop \ Invoice PDFs" Fname = Format (shInvoiceTemplate.Range ("D10"), "mmmm yyyy") _ & "_" & shInvoiceTemplate.Range ("D12") shInvoiceTemplate.Copy ActiveSheet.Name = "InvTemp" Set wb = ActiveWorkbook Set sh = ActiveSheet sh.ExportAsFixedFormat Тип: = xlTypePDF, Filename: = _ FPath & "\" & Fname, Quality: = xlQualityStandard, IncludeDocProperties: = True, _ IgnorePrintAre , OpenAfterPublish: = False wb.Close SaveChanges: = False ThisWorkbook.Activate Application.ScreenUpdating = True End Sub

Приведенный выше код копирует детали транзакции, заполняет шаблон заполнителя счета этими деталями, создает новую книгу и сохраняет новую книгу как PDF в указанной папке.

Если у вас другой шаблон или другое расположение папки, вам необходимо изменить выделенные ниже части кода:

  1. Первый выделенный раздел - это то, что берет сведения из листа сведений и заполняет шаблон счета-фактуры. Если вы решите изменить шаблон счета-фактуры, вам необходимо убедиться, что вы выбрали правильные данные, изменив эту часть кода.
  2. Эта строка указывает расположение папки. В моем случае это была папка на моем рабочем столе. Вы можете указать адрес папки, в которой вы хотите сохранять счета.

Обратите внимание, что я переименовал кодовое имя рабочего листа в «shDetails». Я сделал это, чтобы использовать имя - shDetails - в моем коде, и он продолжал бы работать, даже если вы измените имя листов на листе.

Если вы хотите узнать больше об имени листа и кодовом имени, взгляните на это (ознакомьтесь с разделом об использовании кодового имени листа).

Где код в книге?

Код помещается в серверную часть книги Excel в модуле.

Чтобы получить доступ к коду, выполните следующие действия:

  1. Щелкните вкладку Разработчик.
  2. Щелкните параметр Visual Basic. Это откроет окно редактора VB.
  3. В редакторе Visual Basic дважды щелкните модуль, чтобы открыть окно его кода. Вы найдете упомянутый выше код.

Если вы создаете шаблон самостоятельно, возможно, вы не найдете модуль в новой книге. Вам нужно щелкнуть правой кнопкой мыши любой из объектов книги, перейти к «Вставить», а затем щелкнуть «Модуль». Это вставит новый модуль.

Как заставить работать функцию двойного щелчка

Вышеупомянутый код выполняет всю тяжелую работу, но вам необходимо связать его с событием двойного щелчка.

Это означает, что приведенный выше код макроса VBA должен запускаться всякий раз, когда кто-то дважды щелкает заполненные ячейки в столбце имени клиента.

Это можно сделать, вставив следующий код в окно кода рабочего листа:

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

Вот шаги, чтобы вставить этот код в бэкэнд рабочего листа:

  • Щелкните правой кнопкой мыши вкладку рабочего листа «Подробности».
  • Нажмите на опцию «Просмотреть код».
  • Скопируйте и вставьте приведенный выше код в появившееся окно кода.

Приведенный выше код выполняет следующие действия:

  1. Проверяет, содержит ли ячейка, по которой был выполнен двойной щелчок, сведения о клиенте или нет. Он использует оператор IF для проверки и запуска кода, только если ячейка не пуста и находится в столбце B.
  2. Если оба указанных критерия удовлетворены, он отключает функцию двойного щелчка (то есть переход в режим редактирования) и вызывает подпрограмму «CreateInvoice», которая хранится в модуле. Он также передает подпрограмме значение номера строки. Например, если я дважды щелкну имя клиента в третьей строке, он передаст 3 в качестве значения подпрограмме CreateInvoice.
  3. После выполнения подпрограммы «CreateInvoice», которая создает PDF-файл счета-фактуры, она заканчивается.

Щелкните здесь, чтобы загрузить файл шаблона генератора счетов.

Сохранение шаблона счета-фактуры в формате Excel (вместо PDF)

Если вы хотите сохранить шаблоны счетов как файлы Excel, а не как файлы PDF, вы можете вместо этого использовать приведенный ниже код:

Sub CreateInvoice (RowNum As Integer) Application.ScreenUpdating = False Dim wb As Workbook Dim sh As Worksheet With 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) Заканчивается на FPath = "C: \ Users \ sumit \ Desktop \ Invoice PDFs" Fname = Format (shInvoiceTemplate.Range ("D10"), "mmmm yyyy") _ & "_" & 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

Приведенный выше код сохраняет счет как книгу Excel с тем же соглашением об именах. Лист в книге, содержащий заполненный счет в каждой сохраненной книге, также называется таким же.

Вам также могут понравиться следующие полезные руководства по Excel:

  • Как конвертировать Excel в PDF с помощью VBA.
  • Вставить PDF в Excel.
  • Извлекайте данные из PDF в Excel с помощью этого конвертера.
  • Шаблон калькулятора расписания Excel.
  • Шаблон отслеживания отпусков в Excel.
  • Бесплатные шаблоны Excel.
wave wave wave wave wave