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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.02.2010, 16:45   #1
gaevoy1
 
Регистрация: 01.02.2010
Сообщений: 3
По умолчанию Формирование документа Word на основе данных Excel

Пожалуйста, помогите.

Я хочу с помощью макроса формировать отчет о командировке в виде документа Word на основании данных таблицы Excel, которую я буду постоянно обновлять.

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

У меня не получаеться сделать следующее:

Запускаю макрос, появляеться окно, в котором я выбираю позицию для формирования отчета, как результат - формируеться отчет, но не по той позиции которую я выбрал.

Так же у меня не получаеться сменить вид отображения позиций по которым нужно формировать отчет. Сейчас он следующего вида - "дата" + "клиент", когда я меняю местами эти поля, то что бы я не выбрал, отчет всегда формируется по самой первой позиции в списке.
Вложения
Тип файла: zip Desktop.zip (69.7 Кб, 72 просмотров)
gaevoy1 вне форума Ответить с цитированием
Старый 05.02.2010, 21:37   #2
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте gaevoy1.
Ваша задача требует корректировки структуры - работа с табличными данными без уникального идентификатора не возможна. Идентифицировать запись (строку) только по Date и Client не возможно, например "30.11.2009 - Перевальский МПЗ" может указывать на три строки, и это обрекает конструкцию неработоспособность.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 05.02.2010, 22:40   #3
alyon_ka
Пользователь
 
Регистрация: 16.12.2009
Сообщений: 40
По умолчанию

у меня есть собственный макрос, который подставляет данные из Excel в Word, он достаточно простой и универсальный, выбираете шаблон документа, и все необходимы данные из текущей строки Excel переносятся в Word, сохраняется вордовский документ с названием ячейки, которая была в момент запуска макроса активна. Если заинтересует - пишите.
alyon_ka вне форума Ответить с цитированием
Старый 05.02.2010, 22:44   #4
sergiksergik
Пользователь
 
Аватар для sergiksergik
 
Регистрация: 25.01.2009
Сообщений: 81
По умолчанию

alyon_ka , Хотелось бы глянуть на макрос.
Покажи пожалуйста...
sergiksergik вне форума Ответить с цитированием
Старый 05.02.2010, 23:33   #5
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

gaevoy1, я "погорячился" утверждение "..это обрекает конструкцию.." относится только к методам работы с данными, применение поиска (.Find) не даст желаемого результат. Но отсутствие уникального ключа никак не скажется на работе с массивами.
В образце ссылка на строку листа осуществляется по индексу (номеру) в массиве списка.
Евгений.
Вложения
Тип файла: rar base_тест.rar (32.0 Кб, 119 просмотров)
Teslenko_EA вне форума Ответить с цитированием
Старый 08.02.2010, 10:23   #6
gaevoy1
 
Регистрация: 01.02.2010
Сообщений: 3
По умолчанию

Уважаемый Евгений огромное спасибо. Буду далее сам разбираться в примудростях Excel и VBA

Последний раз редактировалось gaevoy1; 08.02.2010 в 12:01.
gaevoy1 вне форума Ответить с цитированием
Старый 08.02.2010, 12:01   #7
gaevoy1
 
Регистрация: 01.02.2010
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Teslenko_EA Посмотреть сообщение
gaevoy1, я "погорячился" утверждение "..это обрекает конструкцию.." относится только к методам работы с данными, применение поиска (.Find) не даст желаемого результат. Но отсутствие уникального ключа никак не скажется на работе с массивами.
В образце ссылка на строку листа осуществляется по индексу (номеру) в массиве списка.
Евгений.
Евгений, обьясните, пожалуйста, какая часть кода отвечает за генерацию имени doc файла. В приведенном Вами примере, файл называется автоматически по имени клиента, я хотел бы добавить в имя еще и дату, когда была сделана командировка.

Заранее спасибо.
gaevoy1 вне форума Ответить с цитированием
Старый 08.02.2010, 19:20   #8
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте gaevoy1.
измените строку кода :
Код:
sT = ThisWorkbook.Path + "\" + sName + sDog + sExt
на
Код:
... 
sT = Format(Cells(iRow, 1), "yymmdd") + "_" + sName + sDog + sExt
sT = ThisWorkbook.Path + "\" + sT
...
и имя файла будет начинаться с даты в формате ГГММДД, именно так потому, что это самый удобный формат для сортировки файлов, которая в будущем, уверяю Вас потребуется.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 13.06.2010, 15:16   #9
annet1160
Новичок
Джуниор
 
Регистрация: 13.06.2010
Сообщений: 2
По умолчанию

А как вот эту таблицу переделать в Openoffice?
annet1160 вне форума Ответить с цитированием
Старый 14.06.2010, 19:22   #10
Volodshan
Форумчанин
 
Регистрация: 20.05.2008
Сообщений: 241
По умолчанию

annet1160!
1 - это форум не по ООо.
2 - тема не ваша, это - ошибка и нарушение.
3 - таблицу просто открыть в Calc_3.1.1 или 3.2.0.
ps См. "http://community.i-rs.ru/index.php?board=5.0".
Volodshan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнение документа Word из массива даных Excel sasha_prof Microsoft Office Excel 2 27.01.2010 11:10
формирование новой таблицы на основе исходной azov Microsoft Office Excel 2 18.07.2009 22:38
Выделение и копирование части документа на основе структуры файла satyr_of_frost Microsoft Office Word 23 12.02.2009 09:15
Перенос данных из MS Word в MS Excel ? Nickd5 Помощь студентам 2 28.06.2008 20:40
Формирование Excel-документа через OLE-сервер с Unicode-символами sergushkin Microsoft Office Excel 2 13.04.2008 23:04