Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.08.2009, 19:53   #1
prizzrak
Пользователь
 
Регистрация: 20.08.2009
Сообщений: 11
По умолчанию Как вывести на печать документ Word

Прошу помощи у знатаков.
Ситуация такая: Есть файл excel в котором мы заполняем калькуляцию, автоматом заполняются квитанции на другом листе. Есть простенький макрос который закреплен за кнопкой, который выводит на печать эти квитанции и калькуляции нужное количество и нужного вида.
Как дополнение создан файл Wodr со связями с вышеуказанным файлом, в котором происходит заполнение договора (ФИО, адрес, суммы...).
Печатать договор сейчас приходится отдельно, открыв файл word, нажав "Да" на вопрос "обновить связи или нет" и потом печатать готовый договор.
Вопрос: Можно ли в excel создать макрос который, пусть так же при нажатии на кнопку, сам откроет этот файл word, обновит связи и напечатает два экземпляра договора, сохранит файл с именем {ФИО} и закроет файл?
В идеале можно эти два макроса "объеденить", и закрепить за кнопкой "Печать пакета документов".
prizzrak вне форума Ответить с цитированием
Старый 20.08.2009, 20:23   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Вопрос: Можно ли в excel создать макрос который, пусть так же при нажатии на кнопку, сам откроет этот файл word, обновит связи и напечатает два экземпляра договора, сохранит файл с именем {ФИО} и закроет файл?
Да, такой макрос сделать можно.
Всего 10-15 строк кода.

Но его никто не напишет, пока Вы подробно не распишите, где макрос должен искать файл Word, как называется этот файл, в какой папке сохранять файл с именем {ФИО} (и где брать это ФИО), закрывать файл с сохранением, или нет, и т.д.
Лучше, если будут примеры файлов Excel и Word.
EducatedFool вне форума Ответить с цитированием
Старый 20.08.2009, 22:00   #3
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Дождемся ли ответа от призрака?
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 24.08.2009, 17:57   #4
prizzrak
Пользователь
 
Регистрация: 20.08.2009
Сообщений: 11
По умолчанию

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

Внутри архива есть текстовый файл где я постарался пояснить ситуацию как можно подробнее...
Вложения
Тип файла: rar Расчет.rar (46.6 Кб, 56 просмотров)
prizzrak вне форума Ответить с цитированием
Старый 26.08.2009, 05:37   #5
prizzrak
Пользователь
 
Регистрация: 20.08.2009
Сообщений: 11
По умолчанию

Хотелось бы услышать мнение знатаков....
выполнима ли такая задача или лучше оставить как есть?
prizzrak вне форума Ответить с цитированием
Старый 26.08.2009, 14:00   #6
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Задача выполнима. Например, так
Код:
Sub PrintDoc()
  Dim owdDoc As Object
  Dim owdApp As Object
  Dim sFIO As String
  Dim oRng As Range
  
  'Создаем новое приложение Word
  Set owdApp = CreateObject("Word.Application")
  'Делаем его видимым
  owdApp.Visible = True
  'Открываем документ, который лежит в одной папке с файлом Excel
  Set owdDoc = owdApp.Documents.Open(ThisWorkbook.Path & "\" & "Договор.doc")
  'Обновляем поля
  owdDoc.Fields.Update
  'Печатаем две копии
  owdDoc.PrintOut Copies:=2
  'Ищем где на третьем листе находятся инициалы
  Set oRng = ThisWorkbook.Sheets("Данные для договора").Range.Find("ФИО")
  sFIO = oRng.Next.Text
  'Сохраняем документ
  owdDoc.SaveAs ThisWorkbook.Path & "\" & DIRNAME & sFIO & ".doc"
  'Закрываем документ
  owdDoc.Close
  'Сохраняем книгу
  ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & DIRNAME & sFIO & ".xls"
  Set owdApp = Nothing
  Set owdDoc = Nothing
End Sub
Залезть в свойства принтера не представляет возможным. Придется вам сначала установить параметры принтера, а затем уже запускать макрос для печати.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 26.08.2009, 17:14   #7
prizzrak
Пользователь
 
Регистрация: 20.08.2009
Сообщений: 11
По умолчанию

Спасибо, завтра буду буду пробовать....

А по поводу качества печати возник вопрос...
Если в word-е написать макрос для печати нужного количества, качества ( он пишется рекордером word, проверял..), а потом из excel-я открыть файл word, обновить связи и .. выполнить существующий макрос??
или я гоню?
prizzrak вне форума Ответить с цитированием
Старый 26.08.2009, 18:05   #8
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Ну-ка приведите мне макрос, да еще записаный макрорекордером, где можно установить свойства принтера. Любопытно глянуть.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 26.08.2009, 21:15   #9
prizzrak
Пользователь
 
Регистрация: 20.08.2009
Сообщений: 11
По умолчанию

в файле excel, который находится в представленом мной архиве.
Макрос закреплен за кнопкой справа, печатает два первых листа и один второй, качество печати-черновое. (по тому как принтер печатает, можно определить печатает он в обычном режиме или черновом)..
prizzrak вне форума Ответить с цитированием
Старый 26.08.2009, 21:26   #10
prizzrak
Пользователь
 
Регистрация: 20.08.2009
Сообщений: 11
По умолчанию

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В OleContainer документ Word, как в нем контролировать нажатие клавиши? Djonik Общие вопросы Delphi 0 16.03.2009 18:38
Как перехватить документ, посланный на печать? Iskatel Win Api 14 17.02.2009 17:17
как вставить диаграмму Excel в документ Word JOHNNY BASIC Общие вопросы Delphi 0 29.09.2008 20:15
Как вывести таблицу StringGrid на печать? graphoman Компоненты Delphi 1 07.01.2008 22:19
Как Web документ(htm, mht, и т.д.) открыть через Word? Yelzhas Общие вопросы Delphi 4 18.11.2007 20:14