Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Связать договор в Word с таблицей Excel / 25 сообщений из 25, страница 1 из 1
29.10.2010, 18:20
    #36928526
Jullap
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать договор в Word с таблицей Excel
Добрый день, форумчане
Пожалуйста, помогите сделать следующее:
Есть таблица, в ней номер договора, ФИО клиента, его паспортные данные. И есть договор в вордовском файле. Нужно сделать макрос в excel. С его помощью: открывается договор в ворде и туда вставляются все эти данные.
Оптимально как я поняла использовать для определения мест куда нужно вставлять данные с помощью Закладок (у меня Word2010),
Не хватает опыта чтобы самой написать. Очень прошу кому это не сложно напишите как это сделать. Как открыть из excel нужный файл word. А для вставки нужных данных наверное макрос должен быть прикручен и к самому договору. Как через него получить данные из ячеек excelя? И вставить их в закладки?
До сих пор мучаюсь и переношу все договора в excel и печатаю их из excelя, что доставляет массу неудобств.((
...
Рейтинг: 0 / 0
29.10.2010, 19:51
    #36928642
Romik76
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать договор в Word с таблицей Excel
JullapА для вставки нужных данных наверное макрос должен быть прикручен и к самому договору
Нет.
Все делается из экселя, автоматизацией.
Я решаю одним из 2х способов :
Способ А (сложнее)
1) Создаем в вордовском шаблоне нужные свойства документа (в 2003 ворде - в меню "файл" выбрать "свойства" - "прочие").
2) в вордовский шаблон пихаем созданные свойства в нужные места - с помощью вставки поля DocProperty. Вставка - поле - DocProperty. Получится что-то типа
{DOCPROPERTY Заказчик \*MERGEFORMAT}
3) Макросом из экселя создаем документа c помощью автоматизации -
Код: plaintext
1.
2.
Dim doc as Word.Document
Set doc = CreateObject ("C:\Договор.doc")
4) Тем же макросом из экселя инициализируем свойства созданного документа соответственно тому, что имеем в экселе.
Код: plaintext
1.
doc.CustomDocumentProperties("Заказчик").Value = "Красавчик"
5) Желательно это поле еще и обновить. сделать Field.Update
Способ Б (проще)
1) Вставляем в вордовский шаблон в нужные места именованные закладки
2) Макросом из экселя создаем документа c помощью автоматизации -
Код: plaintext
1.
2.
Dim doc as Word.Document
Set doc = CreateObject ("C:\Договор.doc")
3) Тем же макросом из экселя вставляем в те места, где закладки в созданном документе то, что имеем в экселе.
Код: plaintext
doc.Bookmarks("Заказчик").Range.InsertAfter("Красавчик")

Если документ Word простой- все импортированное содержимое в верхнем слое, то смело выбирайте второй способ.
...
Рейтинг: 0 / 0
29.10.2010, 20:10
    #36928671
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать договор в Word с таблицей Excel
JullapДобрый день, форумчане

До сих пор мучаюсь и переношу все договора в excel и печатаю их из excelя, что доставляет массу неудобств.((

не поняла этой строки .......
я отлично печатала из екселя даже счета-фактуры в формате ворд-а
...
Рейтинг: 0 / 0
29.10.2010, 21:11
    #36928738
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать договор в Word с таблицей Excel
Jullap,

-что у вас первично(ворд или ексель)

-велик ли документ ворд(в листах), есть ли в нем таблицы

-много ли за один раз печатается бланков( например: каждому жителю дома стандартный бланк со вставленными личными данными или это штучный продукт, который никогда не повторится)

-в чем причина перетаскивания ворда в ексель ..............

да и образец не помешал бы для ясности
...
Рейтинг: 0 / 0
30.10.2010, 05:47
    #36928969
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать договор в Word с таблицей Excel
Jullap, недавно же обсуждали...

http://sql.ru/forum/actualthread.aspx?tid=798735
...
Рейтинг: 0 / 0
01.11.2010, 15:50
    #36931483
Jullap
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать договор в Word с таблицей Excel
ПЕНСИОНЕРКА,

# -что у вас первично(ворд или ексель)

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

# -велик ли документ ворд(в листах), есть ли в нем таблицы

документ страниц на пять, таблиц нет только места в тексте договора куда нужно вставлять данные клиента, стоимость и т.д.
но документов около 10 штук на каждого клиента, и в каждый документ, нужно вставить одно и тоже


# -много ли за один раз печатается бланков( например: каждому жителю дома стандартный бланк со вставленными личными данными или это штучный продукт, который никогда не повторится)

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


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

перетаскивать договора в эксель очень неудобно, подстраивать все ячейки, если что-то меняется это ужасный геморрой, опять все подправлять, а меняются договора у нас довольно часто. Что уж тут говорить для работы с текстами создан Word, а не Excel. Если бы это были только счета, то конечно в эксель никаких вопросов бы не вызывал. А поскольку это договора, то проще в ворде расставить закладки в тексте договора, чем перетаскивать его весь в эксель.


пока общими усилиями получается что-то такое
но в ответ пишет, что object doesn't support this property or method.


Option Explicit
Dim objWord As New Word.Application
Dim objDoc As Word.Document
Dim wdBm As Word.Bookmark

Public Sub PD()
Set objDoc = objWord.Documents.Open("C:\Users\ly\Desktop\PD.docx")
objDoc.wdBm("ФИО").Range.Text = "ВАСЯСЯСЯ"
objDoc.Save
objDoc.Close
objWord.Quit
End Sub

Если вы мне поможете, я буду очень счастлива, куча рутины свалится с плеч.
...
Рейтинг: 0 / 0
01.11.2010, 16:26
    #36931644
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать договор в Word с таблицей Excel
Jullap,

документ ворд-а понятен и предсказуем

документ же екселя действительно такой (в столбик)

или в действительности это таблица на 14 столбиков
...
Рейтинг: 0 / 0
01.11.2010, 17:06
    #36931797
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать договор в Word с таблицей Excel
Да, еще вопрос - договор, счёт, соглашение - всегда типовые, либо как-то еще различаются по видам клиентов, например. Хотя это вопрос решаемый - можно разные шаблоны указать сразу в Экзеле...

Закладки-то зачем? Я же в своём посте приводил пример, как быстро можно "собрать" шаблон и обойтись минимумом кода в вызывающем макросе.
...
Рейтинг: 0 / 0
01.11.2010, 17:24
    #36931869
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать договор в Word с таблицей Excel
Jullap,

расставьте в ворде имена ячеек из екселя для одного клиента в формате ###B1
где В-столбец,цифра -строка

не полем, а просто гладким текстом с подчеркиванием при необходимости(вместо ___)

особое внимание паспорту, так как и документе и поле слова выдан-подразделение-от

прием пригоден для любого документа, макрос обрабатывает имена полей и вставляет значения ячеек
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
28.03.2012, 10:46
    #37726920
EducatedFool
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать договор в Word с таблицей Excel
Вдруг кому пригодится...

Сделал программу для заполнения документов данными из таблицы Excel (из Excel в Word)

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

В качестве шаблонов могут выступать следующие типы файлов:

- документы Word (расширения DOC, DOCX, DOCM)
- шаблоны Word (расширения DOT, DOTX, DOTM)
- книги Excel (расширения XLS, XLSX, XLSM, XLSB)
- шаблоны Excel (расширения XLT, XLTX, XLTM)
- текстовые документы (расширения TXT, DAT, XML и т.д.)

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

Количество шаблонов документов не ограничено

--------------------------------
В каких случаях вам может пригодиться эта надстройка:

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

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

- подготовить письма, уведомления, грамоты в формате PDF или Word, заполнив созданные файлы информацией с листа Excel

- и т.д. и т.п. - надстройку можно применять для создания любых документов на основе данных из Excel
--------------------------------

Скачать надстройку можно здесь:
http://excelvba.ru/programmes/FillDocuments
...
Рейтинг: 0 / 0
30.10.2012, 05:50
    #38017927
chipgun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать договор в Word с таблицей Excel
Вопрос такой возник:
заполняю Word данными из Excel с помощью закладок.

Возникает несколько проблем - необходимо указать в документе несколько фамилий присутствующих, но т.к. в Word они в столбик 6 идут подряд, а на деле не всегда все 6 заполняются вопрос как допустим после 4 введенных фамилий не оставалось две пустые строки.

то есть в Word так

Закладка1 - Иванов
Закладка2 - Петров
Закладка3 - Сидоров
Закладка4 - Жданов
Закладка5 - И как вот остальные две закладки удалить так, чтобы после них пошел текст
Закладка6 - документа без лишних абзацев
...
Рейтинг: 0 / 0
30.10.2012, 18:23
    #38019209
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать договор в Word с таблицей Excel
Сделайте в этом месте только одну закладку, а при её заполнении из Excel - сформируйте переменную, содержащую столько строк, сколько нужно.
...
Рейтинг: 0 / 0
31.10.2012, 05:11
    #38019523
chipgun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать договор в Word с таблицей Excel
AndreTM,

понял, пробую через Case сделать 6 вариантов...

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

пример

2.6.1. требования ...
2.6.2. сроки...
... а потом идет закладка и необходимо здесь добавить 2 пункта 2.6.3. и 2.6.4. соттвественно.
...
Рейтинг: 0 / 0
31.10.2012, 05:28
    #38019526
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать договор в Word с таблицей Excel
То же самое: посмотрите (тем же макрорекордером), с помощью каких кодов WORD формирует автонумерацию - и вставляйте сформированнный Excel'ем код в закладку.

Впрочем, дождитесь дня и прихода катастрофы - вполне вероятно, он вам пояснит, как удобнее сформировать код для Ворд'а...
...
Рейтинг: 0 / 0
03.11.2012, 19:09
    #38024570
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать договор в Word с таблицей Excel
уж и воды много утекло..., что за проблема?
...
Рейтинг: 0 / 0
03.11.2012, 20:56
    #38024628
chipgun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать договор в Word с таблицей Excel
катастрофа,

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

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

сразу оговорюсь, что слияние и связывание через вставку не пройдут...
...
Рейтинг: 0 / 0
03.11.2012, 21:55
    #38024678
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать договор в Word с таблицей Excel
chipgun...связывание через вставку не пройдут...Странно, почему не пройдет... ведь вставка связи с полем (как у меня когда-то рассказывалось, через "неформатированный текст") при отсутствии текста в исходном поле вообще никак в Ворд не отображается. Таким образом, "данные в столбик" я, вроде, рассказал, как можно сделать - просто сформировать в ячейке Экзеля нужный список фамилий. Таблицу вообще можно вставить "как есть", прямо как Экзелевскую (естественно, избавившить от "#Н/Д" с помощью условного форматирования, например).
Ну или дайте примерчик ваших данных, посмотреть, что вы хотите получить. А то как-то непонятны ваши метания и просьбы - я уже начинаю подозревать, что вашу задачу надо решать в Акцессе...
...
Рейтинг: 0 / 0
04.11.2012, 10:45
    #38024880
chipgun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать договор в Word с таблицей Excel
AndreTM,

В связи с тем, что шаблон документа, в который вставляются данные из excel примерно на 40 страниц. Если связывать с полями в excel, то файл во-первых получается намного больше по размеру (если ручками вводить, то 250-300 кб, а если связывать полями, то больше мегабайта занимает, то есть в 3-4 раза больше)
Затем, файл ворд должен быть представлен очень большому кругу лиц, причем не связанных с нашей конторой, а файлы просят обновления связей, да и плюс ко всему смотрится такой файл не очень, когда выделяется поле юзерам как-то страшно становится...

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

пример данных брошу, когда на работе окажусь..

и так просто катастрофа спросил - я ответил... а Ваши советы я тоже прорабатываю... потихоньку))
...
Рейтинг: 0 / 0
04.11.2012, 13:10
    #38024937
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать договор в Word с таблицей Excel
chipgunкатастрофа,

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

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

сразу оговорюсь, что слияние и связывание через вставку не пройдут...

в excel создана форма, которую юзер заполняет и все данные остаются соответственно в excel - лишняя смысловая нагрузка для меня
теперь мне нужно перенести фамилии присутствующих в столбик - откуда и куда?
как лучше сделать, чтобы не печатались лишние абзацы - а откуда они взялись?

также вопрос такой - в екселе есть таблица, в таблице есть данные, а есть и ячейки с ошибками, так вот как можно перекинуть таблицу из excel в word и сохранить вид таблицы в ворде - я бы делал циклом по количеству данных в столбце Экселя и сразу при переносе улаживал эти ошибки, что касается вида таблицы если реально в Ворде можно создать её то считать ширину ячеек таблицы в Экселе и сделать такую в Ворде
...
Рейтинг: 0 / 0
04.11.2012, 21:35
    #38025190
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать договор в Word с таблицей Excel
chipgunAndreTM,

В связи с тем, что шаблон документа, в который вставляются данные из excel примерно на 40 страниц. Если связывать с полями в excel, то файл во-первых получается намного больше по размеру (если ручками вводить, то 250-300 кб, а если связывать полями, то больше мегабайта занимает, то есть в 3-4 раза больше)
Затем, файл ворд должен быть представлен очень большому кругу лиц, причем не связанных с нашей конторой, а файлы просят обновления связей, да и плюс ко всему смотрится такой файл не очень, когда выделяется поле юзерам как-то страшно становится...Шаблон - это один-единственный файл такого размера. На основе шаблона создается новый файл, уже заполненный информацией - и при сохранении получает некое отдельное имя, и при этом избавляется от связей... вот и всё. И "широкому кругу лиц" вы передаете отнюдь не шаблон, а заполненный файл.
Таблицу, действительно, можно и "нарисовать". То есть в нужном месте просто вставьте таблицу нужных размеров - и наполните её данными из Экзеля. Ведь (как показано в примерах) в момент работы с файлом Ворд (созданным на основе шаблона) - вы имеете доступ к объекту Word.Application и коллекции документов, так что никто вам не запрещает управлять вашим новым документом Ворд прямо из Экзеля...
...
Рейтинг: 0 / 0
06.11.2012, 19:22
    #38027401
chipgun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать договор в Word с таблицей Excel
катастрофа,

катастрофа,
на моем уровне знания программирования сдела примерно так.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Private Sub CommandButton1_Click()
 cFileD = ActiveWorkbook.Path & "\Том1.doc"
    Set WD = CreateObject("Word.Application")
    WD.Visible = True
    WD.Documents.Open Filename:=cFileD
    With WD.ActiveDocument.Bookmarks
    .Item("присут1").Range.Text = ActiveWorkbook.Sheets(1).Range("присут1").Value
    .Item("присут2").Range.Text = ActiveWorkbook.Sheets(1).Range("присут2").Value
    .Item("присут3").Range.Text = ActiveWorkbook.Sheets(1).Range("присут3").Value
    .Item("оцтех4").Range.Text = ActiveWorkbook.Sheets(1).Range("оцтех4").Value
    End With
Set WD = Nothing
End Sub


так вот лишние абзацы берутся, если присут3 не присут ;) а дальше есть еще текст идет и получается закладка для присут3 пустая...
я помню, что AndreТМ говорил про одну переменную, но я не допетрил еще...

Однако я понимаю, что как говорил AndreTM и катастрофа нужно делать циклом, но пока не могу представить как его написать.

кстати раннее связывание не работает у меня, меняю с Word.Application на Object или Variant работает, а так ошибку выдает... хотя библиотека 11.0 подключена в пропертях...
если не сложно примерно в какую сторону работать, чтобы циклом присутствующих определять, а то таких задач много, нужно смысл понять, скелет... заранее благодарен.
...
Рейтинг: 0 / 0
06.11.2012, 23:47
    #38027667
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать договор в Word с таблицей Excel
chipgunя помню, что AndreТМ говорил про одну переменную, но я не допетрил еще...

Однако я понимаю, что как говорил AndreTM и катастрофа нужно делать циклом, но пока не могу представить как его написать.Какой цикл-то?
Я говорил про то, что вы сначала в сформируйте переменную/ячейку, содержащую все необходимые строки:
Пусть D5 = "Иванов", E5 = "Петров", F5 = "Сидоров", диапазон "присут1" назначен ячейке A8
Код: vbnet
1.
2.
ActiveWorkbook.Sheets(1).Range("A8").Value = mid(iif(D5 = "", "", vbCrLf & "___" & D5 & "____") & _
 iif(E5 = "", "", vbCrLf & "___" & E5 & "____") & iif(F5 = "", "", vbCrLf & "___" & F5 & "____"), 3)

Можно, конечно, ячейки с фамилиями перебрать и циклом... А можно вообще это "преобразование" забить в диапазон "присут1" как формулу листа.

Затем при работе с Ворд (закладка должна быть только одна - "присут1")
Код: vbnet
1.
2.
3.
4.
5.
6.
...
    With WD.ActiveDocument.Bookmarks
    .Item("присут1").Range.Text = ActiveWorkbook.Sheets(1).Range("присут1").Value
    .Item("оцтех4").Range.Text = ActiveWorkbook.Sheets(1).Range("оцтех4").Value
    End With
...

Сложно?
...
Рейтинг: 0 / 0
07.11.2012, 05:43
    #38027792
chipgun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать договор в Word с таблицей Excel
AndreTM,

не сложно... оказывается...
спасибо за терпение ;) понял, можно и на листе excel сделать формулу, просто хотелось через код посмотреть. кстати в вашей формуле на D5 E5 F5 ругается вба почему-то
...
Рейтинг: 0 / 0
07.11.2012, 06:57
    #38027811
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать договор в Word с таблицей Excel
chipgunкстати в вашей формуле на D5 E5 F5 ругается вба почему-тоТьфу... Привычка (старожилы помнят) - когда пишешь прямо в форум, оставляется явная ошибка с расчетом на то, что вопрошающий попробует разобраться в действии, а не копипастить...

Реально там должно быть ActiveWorkbook.Sheets(1).Range("D5").Value и т.д.
...
Рейтинг: 0 / 0
07.11.2012, 19:41
    #38029252
chipgun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать договор в Word с таблицей Excel
AndreTM,с
Ха... понял буду не тупо копипастить. Кстати не подскажете почему у меня не работает раннее связано не работает. Библиотека подключена 11.0
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Связать договор в Word с таблицей Excel / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]