Создание документов по шаблонам (из Excel в Word) + рассылка почты

Надстройка FillDocuments для MS Excel: общие сведения

Предназначение программы: заполнение множества документов данными из Excel нажатием одной кнопки.

Для работы программы требуется таблица Excel с данными для подстановки, и папка с шаблоном (шаблонами) документов.
В качестве шаблонов можно использовать файлы Word, Excel, PowerPoint, и текстовые.

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

Особенности программы

  • Количество шаблонов не ограничено. Вы легко можете сами настраивать любые шаблоны.
    В качестве шаблонов могут выступать файлы Excel (XLS, XLSX и др.), документы Word (DOC, DOCX и др.), презентации Power Point (PPT, PPTX), а также текстовые документы (расширения TXT, DAT, XML и т.д.).
  • Гибкая настройка имён создаваемых файлов. Можно раскладывать файлы по подпапкам.
  • Подстановка таблиц и картинок (фото, печатей, подписей и т.п.) в заполняемые документы.
  • Склонение фамилий, дата и сумма прописью, — дополнительные функции обработки данных.
  • Рассылка почты (писем с вложениями) через TheBAT! или Outlook. Можно формировать красивые HTML-письма
  • Есть возможность формировать один документ по нескольким строкам исходной таблицы.
    (вывести список сотрудников в приказ, список товаров в накладную, и т.д.).
  • Можно выбирать шаблоны для заполнения в диалоговом окне
    (или даже программа будет сама брать нужные шаблоны для разных строк)
  • Подстановка данных в надписи и колонтитулы шаблонов Word.

С момента выхода программы в 2012 году, её функционал постоянно развивался (вышли десятки обновлений), поэтому сейчас в FillDocuments есть всё, что только может вам понадобиться для задачи создания документов по шаблонам.

Более подробно всё это описано в разделе Справка по программе

Видеоинструкция
YouTube
VK Video
RuTube

На видео рассказывается о работе с программой, и показан процесс её настройки:

Подробные инструкции и описание функционала также можно найти в разделе Справка по программе

Нажатием одной кнопки, эта программа вам позволит:

  • заполнить и распечатать договор купли-продажи и акт выполненных работ всего за пару секунд
  • подготовить приказы, уведомления и доверенности по таблице с данными сотрудников
  • разослать персонифицированные коммерческие предложения или приглашения по почте
  • подготовить договоры и акты по шаблонам, и сразу вывести их на печать
  • сделать красивые грамоты по различным шаблонам, и сохранить результат в виде ПДФ файлов
  • распечатать несколько накладных или заявок на товар в формате Excel по одной исходной таблице (прайсу)
  • заполнять командировочные удостоверения, инструкции, соглашения, или любые другие однотипные документы

Как скачать и протестировать программу

Комментарии

Ссылки с инструкциями перестали работать

А вы перейдите на страницу оплаты, пролистайте страницу вниз, - там есть вся необходимая информация:
http://excelvba.ru/buy/addin?name=FillDocuments

Здравствуйте, хотели бы приобристи программу на юр.лицо. И оплатить по б/н расчету, как это сделать?

Здравствуйте, Дмитрий.
Не совсем понял, какое отношение ваш вопрос имеет к моей программе.

В Excel перенос внутри ячейки задается символом с кодом 10, как вы и написали (вводится нажатием Alt + Enter)
Как моя программа вставит этот перенос в Word, - тут есть несколько вариантов.
Нужный режим выбирается в настройках программы, на вкладке «Дополнительно» (там есть выпадающий список с вариантами, - попробуйте все варианты, какой-нибудь да подойдёт)

А если ваш вопрос касательно Excel - как сделать отступ после перевода строки, - так это можно сделать пробелами
(символ табуляции - СИМВОЛ(9) в Excel не работает):

="    "&"Первая строка текста"&СИМВОЛ(10)&"    "&"Вторая строка текста"

или же при помощи формата ячейки (параметр ОТСТУП ОТ ЛЕВОГО КРАЯ)

Игорь, здравствуйте.

Подскажите, имеется ли возможность формулой или макросом задать красную строку внутри одной ячейки?

Символ(10) дает мягкий перенос, символ(182) не работает в ворде, точнее как символ вставляется.

Чтобы в связке типа - Текст1 & символ(10) & Текст2

обе части с красной строки вставлялись из одной ячейке - такое возможно?

Здравствуйте, Magbit

Можно отправлять файлы на печать выборочно.
Достаточно выключить режим вывода на печать в настройках программы (это общие настройки для всех шаблонов),
а в имена шаблонов, которые надо распечатывать, поставить метку {print} или {print=2},
например, переименовать шаблон Договор.doc в Договор{print=2}.doc

Подробнее - в инструкции по настройке имён файлов (см. в самом конце инструкции)

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

Игорь, с проблемой разобрался, оказалось что файл выходил за границу печати а сообщение об этом вылезти не могло, подвинул файл, все норм =) Прога спасает постоянно, еще раз огромное СПАСИБО! надеюсь скоро выйдут обновления!
Еще хотел сказать, что было бы удобнее, если бы каждому шаблону соответствовали отдельные настройки (например один док мне нужен в электронном виде, остальные нужно выводить на печать). Конечно жиру бешусь, но это было бы простом супер!(иногда забываю снять галку и на печать отправляется не то что нужно). А если бы каждому файлу по умолчанию можно было бы задать принтер с которого бы печать пошла, мммм... но это уже из обл фантастики...
А так СПАСИБО!

Здравствуйте, Фьюри.
Разница в скорости подстановки, - из-за различий в алгоритме поиска и замены.
Для подстановки значений в документ используется штатная функция поиска и замены (вручную запускается нажатием Ctrl + H)

' обычная быстрая замена
doc.Range.Find.Execute key$, False, , False, , , , , , txt$, 2

Если же надо подставлять текст в колонтитулы, надписи, и прочие объекты, - необходимо в цикле перебирать все области документа, - а это увеличивает время:

' расширенная замена
For Each myStoryRange In doc.StoryRanges
    myStoryRange.Find.Execute key$, False, , False, , , , , , txt$, 2
    While Not (myStoryRange.NextStoryRange Is Nothing)
        Set myStoryRange = myStoryRange.NextStoryRange
        myStoryRange.Find.Execute key$, False, , False, , , , , , txt$, 2
    Wend
Next myStoryRange

Игорь, а почему настолько дольше получается с подстановкой в колонтитулы, где-то раз в 5?

Здравствуйте, Magbit.
Мой ник в скайпе: ExcelVBA.ru
он указан на странице "Контакты"

Звоните в скайп, разберемся

Здравствуйте, Игорь!
приобрел вашу программу, очень помогает в деле, отличная работа! Но есть один нюанс, с которым не получается разобраться. если файл ворд содержит таблицу (пытаюсь заполнить платежку с реквизитами для сбербанка) она подвисает и ничего не происходит. не знаю вашего скайпа, на сайте не нашел. это нужно очень срочно, а копировать вручную не вариант, данных очень много. прошу помочь с данной проблемой, пример исходной таблицы и платежки могу выслать, скажите куда. заранее благодарю!

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

Игорь, добрый день,
Я скачала программу, активировала демо-версию, которая должна была снять ограничения на 48 часов. Примерно через час, после перезапуска, выдается сообщение "Превышено время бесплатного использования программы"..

Я могу все же потестировать программу эти два дня?
Спасибо заранее.

Ну так позвоните в скайп (или на почту напишите), что за доработка требуется.
Что-нибудь придумаем...

необходима небольшая доработка вашего макроса под свою специфику. Хотим купить, но один момент в нем не устраивает. Нужна помощь.

Игорь, как оказалось, больше 8220 знаков из одной ячейки не вставляет. Не знаю чем вызвано ограничение.

Игорь, а может добавить проверку на запущенный вордец и предлагать сохранить открытые документы и закрыть их, после чего продолжать работу надстройки. as variant

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

А то, что программа распознает как шаблоны временные файлы, - это да, есть такая проблема.
Уже исправил, в следующей версии программы такой проблемы не будет.
Но, как и прежде, программа не сможет заполнить шаблон, если он в данный момент открыт для редактирования.

Игорь, здравствуйте.

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

Отлично, мне это и нужно (вставка картинок из папки).
Подписываюсь на новые комментарии в этой ветке.

Здравствуйте, Дмитрий.

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

Здравствуйте, Игорь!
Отличный сайт!
Ваш макрос не вставляет в шаблон Word ячейку с картинкой (Там где в ячейке картинка вставляется пустое поле).

В таком виде он мне бесполезен, так как я то же самое сделаю стандартными средствами MS Word:
Меню "Рассылки" -> "Выбрать получателей" -> "Использовать существующий список..." -> Тут я выбираю мой файл Excel и начинаю слияние...

Здравствуйте.
Тут много нюансов, - не увидев вашего файла, и не выслушав пояснения, что куда подставлять, - не могу ответить однозначно на вопрос, можно или нет это сделать.

Если исходный файл Excel - всегда один и тот же, - то можно ячейкам на других (дополнительных) листах присвоить имена (например, имя ИНН), а в шаблонах использовать код поля {=ИНН}
(со знаком =, т.к. это не название столбца, а имя ячейки)

Как-то так.
Подробнее, - только если по скайпу голосом

Здравствуйте!
Есть шаблон в word, есть файл excel с тремя листами внутри. Каждый лист excel содержит набор каких-либо полей, 10-12 в каждом листе. Конечный документ ворда должен включать в себя значения полей из РАЗНЫХ листов excel. Например, в одном листе excel есть данные по проекту, в частности, поле Наим_Заказчика с каким-то своим значением, именем заказчика. А данные по этому заказчику, его расчетный счет, инн, адрес и прочие данные, находятся на другом листе excel. Эти данные тоже нужно разместить в определенном месте конечного документа word. Как это реализовать? Программа лицензионная.
Заранее спасибо

А зачем писать такую программу, если вот она, есть готова, - скачивайте, настраивайте, и покупайте, если всё устроит.

Можно и под заказ «изобрести велосипед», - но оно намного дороже выйдет, чем купить готовое универсальное решение.

Здравствуйте!
Мне нужна программа для составления пакета документов, включающего в себя несколько почтовых форм (ф.119 "Уведомление о вручении" и ф. 107 "Опись вложения", обе формы имеются в формате электронной таблицы) и несколько текстовых документов, в которые будут подставляться сведения из файла электронной таблицы. Возьмётесь ли вы написать такую программу по моему заказу и по моим эскизам на платной основе?

С первым в принципе понятно, пасиб. Полноценный экспорт таблиц в ворд вообще сложен: если задать нужное форматирование еще как-то можно, то "главную строку повторять" и "разрешить перенос строк" приходится врукопашку назначать для каждой таблицы.
Опция «Работать по всем видимым листам» - давнее пожелание вашей надстройке, поскольку все шаблоны (если их много) заполнять с одного листа - долго (данные со всех шаблонов выстраиваются в одну километровую полоску и надстройка по часу прогоняет полоску в одном шаблоне), а работа в режимах выбора шаблонов перед формированием доков или заполнения одноименных с листом шаблонов - слишком много кликов и постоянное ожидание окончания формирования, чтобы запустить следующую порцию. Но опять же - это актуально при заполнении кучи разнородных документов, скорее всего никчему обычному офисному планктону.

Из востребованного функционала можно выделить автоматическое переключение настроек по условию (уже озвучивали ниже) и вставку картинок (давно планировали реализовать).

Раст, из вашего описания проблемы мало что понятно...

clearcontents затирает только значения, а программа берет UsedRange (используемый диапазон листа),
в который входят и ячейки (строки) с форматированием (без значений)
Используйте Clear для очистки листа, или каждый раз макросом заново создавайте лист по шаблону.

насчет опции «Работать по всем видимым листам» - не понял, что где заполнять надо
(и связано ли это с первой проблемой)
Позвоните в скайп, - попробую попочь.

При добавлении ссылки на таблицу (с переменным количеством строк в обе стороны) на другом листе с включенной галкой "Все заполненные ячейки" с какого-то момента начинают зацепляться пустые строки при многократном изменении таблицы в ходе заполнения документов. Помогает либо создание нового листа с той же таблицей, либо удаление строк таблицы. Ячейки затираются clearcontents перед новым заполнением таблицы. И все равно, нет нет да зацепит пустых ячеек.
Игорь, было б здоровски, если б в настройках надстройки, рядом с галкой "Использовать только те шаблоны, имена файлов которых содержатся в названии исходного листа Excel с данными", располагалась еще одна "Работать по всем видимым листам" (режим, когда надстройка самостоятельно пробегается по листам и заполняет соответствующие шаблоны).

пока пользуюсь бесплатной версией (в процессе покупки).
1. С Excel вкладка надстройки все время исчезает?
2. тестировала рассылку писем. сначала вкладывались файлы. А потом рассылку делает, но файлы (в моем случае PDF) не вкладывает.
Это какие-то ограничения бесплатной версии?

P.S. Как лучше всего оплатить с Украины?