Страницы: 1 2 3 След.
RSS
Сложный импорт текста из экселя в ворд, текст который копируется вручную хотелось бы автоматически вставлять
 
В общем всем привет).... есть шаблоны и повторяется одна и та же работа (копирую текст из екселя в ворд  копи-пастом) , вот и задался вопросом. а как импортировать данные из таблицы в текс ворда.
У самого такая задумка, сначала фильтруем ну типа фильтр на организацию(по наименованию)  все  вот он текст...далее нужно его просто распихать по ворду..и вот тут я теряюсь)... пытался макросом, но там что то не получилось...., пытался вставить закладки тоже не получилось. Помогите люди добрые  или советом или решением..я думаю этот вопрос поднимался  и не раз,  злободневный он) Всем спасибо.
Два документа прилагаю, один таблица ексель - данные, второй ворд файл - шаблон(куда вносим данные). Я пометил цветом те данные которые копируются, одинаковым цветом.
 
Вот у меня в звгашнике лежит:

Код
http://programmersforum.ru/showthread.php?t=253768&page=4
Sub Вставить_в_отчет()

Dim WA As Object, WD As Object

Set WA = CreateObject("Word.Application")
Set WD = WA.Documents.Open("C:\ШАБЛОНЫ\связка\shablon.docx")

WD.Range.Find.Execute FindText:="{$НОМПАТЕНТ01}", ReplaceWith:=Cells(2, 2), Replace:=2
WD.Range.Find.Execute FindText:="{$Наименовпатент01}", ReplaceWith:=Cells(2, 3), Replace:=2
WD.Range.Find.Execute FindText:="{$Названпатент01}", ReplaceWith:=Cells(2, 4), Replace:=2
WD.Range.Find.Execute FindText:="{$МПКпатент01}", ReplaceWith:=Cells(2, 5), Replace:=2
WD.Range.Find.Execute FindText:="{$датапублпатент01}", ReplaceWith:=Cells(2, 6), Replace:=2
WD.Range.Find.Execute FindText:="{$Статуспатент01}", ReplaceWith:=Cells(2, 7), Replace:=2
WD.Range.Find.Execute FindText:="{$Имязаявит01}", ReplaceWith:=Cells(2, 8), Replace:=2
WD.Range.Find.Execute FindText:="{$Номерзаявк01}", ReplaceWith:=Cells(2, 9), Replace:=2
WD.Range.Find.Execute FindText:="{$Датаподачзаяв01}", ReplaceWith:=Cells(2, 10), Replace:=2
WA.Visible = True
Set WA = Nothing

End Sub
 
Там по ссылке есть и оптимизация, и пример в файле.
Изменено: Hugo - 26.06.2014 16:07:27
 
Цитата
пытался вставить закладки тоже не получилос
А что не получилось-то?
Хоть бы сделал вордовский документ соответствующий выбранной позиции в ексел
А то я дальтоник и сложно ориентироваться по цветам.
И второй вариант: набрать шаблон в екселе и хранить его в скрытом листе.
В екселовском документе вставлять не по закладкам
 
Цитата
Александр Моторин пишет:
пытался вставить закладки тоже не получилос
не скрытый лист  нельзя, там люди еще другие будут и иногда  вручную нужно будет редактировать ...а про закладки там у меня почему то  вверх кидает а не в текс, если цвет ненаешь)) то там простои шаблон  ..данные видно какие вставлять ну по типу  наименование) и там название организации, инн , номер регистрации, адрес)
 
Готовое решение использовать не пробовали?
http://excelvba.ru/programmes/FillDocuments
 
Hugo, не могу скачать по ссылке, пример архива  пишет типа у профиля нет разрешении, скачайте пожалуйста
Изменено: лешка - 29.06.2014 20:34:07
 
Там архив Desktop.rar (124.2 Кб,)  - сюда не влезет.

Кстати я сейчас по этой ссылке его скачал  :)
Но никуда переслать его с работы не могу.
Изменено: Hugo - 27.06.2014 10:02:33
 
Цитата
Игорь пишет: Готовое решение использовать не пробовали?
она платная и ее пилить еще надо... притом много пилить ...и да пробовал но не получается что то
 
Цитата
Hugo пишет:
Кстати я сейчас по этой ссылке его скачал
Но никуда переслать его с работы не могу.
так может майл? почта или любои  фаил обменник
Изменено: лешка - 27.06.2014 10:11:31
 
Зачем тот файл - всё ведь уже в теме есть, берите и переделывайте свой файл. А тот файл Вам не поможет - только покажет как это работает.
 
верно я и хочу понять как работает ... а если вы про палатный пример ..так там все не так просто ,и исходников я невижу ... там нужно переделать многое
 
Ну как работает - открыли документ, и заменяем ярлыки на значения ячеек таблицы. Макрос в экселе. Всё.
Можно добавить цикл по таблице и сохранение полученных файлов/документов.

А про макрос Игоря ничего не знаю, это вопросы к нему.
 
лешка, без цитирования никак не обойтись?
 
так иногда непонятно на что человек отвечает ..а так все сразу и понятно..мне кажется так очень удобно...ладно приду домой попробую скачать тот файлик с примером...
 
Кажется там без регистрации не скачать... Не помню точно, а может уже что и поменялось - разлогиниваться не хочу, пароль забыл :)
 
УСЕ  ) сам смог  там нужно было перередактировать логин..скачал глянул то что надо)).... единственный момент ..получается вставилась инфа и все те ссылки потерялись то есть одноразовый шаблон..
 
Ну так saveas ему сразу, никтож не заставляет шаблон губить.
 
Hugo, и вот теперь главный вопрос , допустим у меня в таблице миллион данных , я ставлю фильтр , нахожду и отображаю только эту запись ..но выборка идет по строчка.... и он серавно в шаблоне укажет 2 строчку к примеру.( я выбрал 345)...а как мне сделать так чтобы он указывал то что в данный момент в ячейках отображается... варинт заменить все цифры в шаблоне) на допустим строчку 345)) но эт не дело же...
 
Цитата
она платная и ее пилить еще надо... притом много пилить ...и да пробовал но не получается что то
В том-то и дело, что пилить не надо, - всё давно продумано и реализовано.

И отфильтрованные данные поддерживаются, и формирование документа по нескольким выделенным строкам:
http://excelvba.ru/programmes/FillDocuments/Multirow
Если делать подобное «с нуля» - много времени уйдёт.

PS: Я не пытаюсь вам что-то продать, - по вашей фразе понятно, что платить вы не хотите, - просто я к тому, что универсальное решение в вашем случае будет сделать весьма сложно
 
Цитата
Игорь пишет: Я не пытаюсь вам что-то продать, - по вашей фразе понятно, что платить вы не хотите...
а я бы купил)) еслиб пилить не надо было... а так пилить и так и так..но  посмотрю то что вы написали возможно   будет мелкии допил..эт гуд
Изменено: лешка - 29.06.2014 20:35:57
 
Пилите Шура, пилите...
Добавляйте в код переменную для selection.row. Или без переменной...
Или купите уже готовое  :)
 
так selection.row пойду изучать мат часть)..а готовое неготовое) ..его пилить надо.... было бы готовое я бы  и не переживал) а купил уже и радовался
 
[USER=29007][/USER] Hugo, хотя ) если вы доброты души широкой человек) вы то знаете)) куда надо поставить selection.row
чето каверкоет имя хуго))
Изменено: лешка - 27.06.2014 14:10:30
 
Набирайте с клавиатуры или копируйте - не будет коверкать.
 
Cells(2, 10) - это ячейка(2-я строка, 10-ый столбец)
Вот вместо 2 и пишите номер строки выделенной/активной ячейки. Или ячейки с меткой, или как там будете её определять - можно например искать номер строки, в которой "сидит" какой-то отобранный по определённому параметру клиент. Вывели диалог, его заполнили (записали, или выбрали из предложенного, или ещё как) - получили заполненный шаблон.
 
Hugo,  ааа без кнопки цитата тяжко) ррр... то есть в макросе каждый раз писать ? типа строчка 555 захожу в макрос ставлю) 555 и жму) это не вариант...
Изменено: лешка - 27.06.2014 14:41:46
 
И что хотели цитировать? Я как-то обхожусь, и так ведь всё понятно.

Нет. Достаточно один раз (и навсегда) написать selection.row - и это всегда будет номер строки выделенной ячейки.
Ну если Вы не будете менять выделенную ячейку - тогда конечно этот номер тоже не будет меняться...
Или впишите туда переменную, значение которой будете чуть выше менять кодом.
 
А вам надо сформировать столько документов, сколько организаций в списке?

т.е. если ООО "Белан" в таблице встречается 3 раза - надо для этих 3 строк сформировать один документ, в котором будет список адресов из 3 пунктов?

поскольку в таблице 7 разных организаций - должно получиться 7 файлов?
 
Игорь,там да есть одинаковые организации но эта одна и та же организация у нее только разные адреса..хотя бывают и одинаковые организации наименованием  но инн и все остальное другое.
 
Hugo,не сработало) поставил а все равно первую строчку только выбирает
lRow = Selection.Row      даж так пытался, не получилось
Изменено: лешка - 30.06.2014 09:31:45
Страницы: 1 2 3 След.
Читают тему
Наверх