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

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

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

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

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

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

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

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

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

Видеоинструкция

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

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

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

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

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

Комментарии

что насчет опен офиса?
мне не нравиться мелкийсофт.

Евгений, формулы — они, вообще-то, для Excel...
Моя надстройка содержит формулы (функции) для Excel, - на в файлах Word, ни в файлах JPG, ни в текстовых файлах, эти формулы работать не будут...

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

Мой шаблон в Word`е

Поскольку функция встроена в мою надстройку, - она работает только тогда, когда запущена надстройка (FillDocuments)

Можно вставить формулу и в шаблон, - но, если вы хотите. чтобы в сформированном документе не отображалась ошибка в формуле, когда созданный документ откроют на компе, где нет моей надстройки, - включите опцию «в сформированных документах Excel, заменять формулы значениями»
В этом случае, после формирования документа по шаблону, все формулы пересчитаются, и заменятся значениями.
В момент формирования файла формула =ФамилияИО() точно будет работать - т.к. надстройка запущена.

Функция =ФамилияИО(B32) работает только в исходной таблице с данными ?
Если ее вставить в шаблон, она не работает.

Здравствуйте, Евгений
На сайте проводились технические работы, - теперь снова все должно открываться.

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

А вы перейдите на страницу оплаты, пролистайте страницу вниз, - там есть вся необходимая информация:
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. Как это реализовать? Программа лицензионная.
Заранее спасибо