Автоматизация создания накладных

Данные в проекте модифицированы/синтетические, структура полностью соответствует реальному использованию.

Описание

Инструмент автоматизации в Excel, который создает ТТН (товарно-транспортные накладные) на основе структурированных данных.

Он заменяет ручное создание документов автоматическим созданием шаблонов.

Иллюстрация создания накладных

Иллюстрация создания накладных

Задача

Упростить и ускорить создание схожих документов.
Особенно когда их много.

Пожелания:

  • Наличие единого источника данных.
  • Чтобы программа сама распознавала сколько документов нужно создать.
  • Создание документов при нажатии на 1 кнопку.
  • Возможность удаления созданных документов (тоже с кнопки).
  • Видеть итоги - сколько документов создано.

Решение

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

Каждая строка данных автоматически превращается в отдельный заполненный документ.

Результат

  • автоматическое создание документов за секунды
  • устранение ручного копирования (и снижение количества ошибок при заполнении)
  • возможность повторного использования инструмента

Как это работает

Логика создания накладных

  1. Значения. В сводный лист вносятся данные, которые будут подставляться в шаблон.
  2. Шаблон. В шаблоне внесены формулы, которые эти данные подтягивают (на основе id).
  3. Готовая накладная. При нажатии кнопки Создать ТТН активируется макрос, который:

→ считает количество строк в данных (= требуемое количество накладных)
→ берет шаблон, заполняет, переименовывает, сохраняет на новый лист
→ возвращает пользователя на главный экран

Структура файла:

Структура файла

Структура файла

1. Главное меню start - с кнопками для создания и удаления накладных.

Также видна информация о последнем запуске: количество созданных накладных и время.

2. Данные data - для вставки в накладные.

• каждая строка = один документ

• каждый столбец = поле для заполнения в этом документе

3. Шаблон template - определяет структуру накладной.

Данные подтягиваются с листа dataчерез формулы (ИНДЕКС + ПОИСКПОЗ).

4-n. Готовые накладные ttn_№ - каждый документ получает имя с порядковым номером id.

Автозаполнение накладной по id

Автозаполнение накладной по id


Сложности и решения

  • Сначала в шаблоне использовала формулы с ВПР → Перешла на ИНДЕКС + ПОИСКПОЗ, так как это более гибко в использовании и легче менять структуру таблицы в дальнейшем.
  • При запуске макроса сначала удаляются ранее созданные листы, и при первом запуске удалился еще и шаблон (упс 🤭) → Потребовалась более устойчивая логика удаления старых файлов: только те, что содержат ttn_* в имени

На будущее — Идеи развития

  • ведение истории запусков
  • экспорт в PDF
  • защита структуры файла, чтобы им легко было пользоваться, но сложно что-то “сломать”

Инструменты

Excel:

  • VBA (макросы)
  • Формулы (поиска данных по таблице, работа с текстом, извлечение дня/месяца/года из даты)

Файлы