|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.09.2011, 14:41 | #1 |
Регистрация: 23.09.2011
Сообщений: 8
|
макрос в word
Здравствуйте, на форуме я прочитал что, мне могут помочь написать макрос из exel под word, только если я приложу файлы, не могли бы вы мне помочь? В файле exel - "меню", есть кнопка сформировать письма, необходимо что бы по этой кнопке в файле word - "письмо", началось слияние с файлом exel - "письма", в принципе файл word, полностью готов для слияния, но есть три нюанса которые надо учитывать при слиянии:
1. в 5-м меню необходимо нажать кнопку изменить список и отсортировать только по не пустым ячейкам, 2. дата из файла exel -"письма" всегда прописывается числовым значением, но если в файле exel -"письма" начать шевелить формат двух столбцов с датами( даты письма и даты контракта), то даты отражаются в word - "письмо" как даты ( КАК СДЕЛАТЬ ЧТОБЫ ВСЕГДА СТОЯЛИ ДАТЫ), ведь независимо от выбранного формата в "письма",даты всегда сначала числами! 3. НА ФОРУМЕ У ОДНОГО программиста я нашел макрос с падежами под word, для того чтобы после слияния, менять падеж в фамилии во второй строчке письма - "УПОЛНОМОЧЕННОЕ ЛИЦО", почему то макрос не хочет работать, если у вас есть свой макрос по склонению по падежам я был бы рад, или если бы вы мне помогли тот макрос под мой файл word сделать, плюс тогда надо будет добавить кнопку в файле word "письмо", для склонения по падежам. ЗАРАНЕЕ СПАСИБО. Прикрепляю все файлыМакросы падежей.rar excel.rar Письмо.doc |
25.09.2011, 15:35 | #2 | |||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
Удалил копии сообщения в чужих темах. Цитата:
Или надо сделать всё за вас? В интернете же есть примеры подобных макросов - например, у меня на сайте: Цитата:
Хотите, чтобы помогли - хотя бы начните делать сами, и спрашивайте, если что-то не будет получаться. PS: Очень понравилась КНОПИЩЕ в вашем файле (язык не поворачивается назвать это кнопкой) Вот только зачем делать кнопку в отдельном файле? Если сделали кнопку - то где код макроса? PPS: Если вы решили воспользоваться слиянием - то зачем вообще макросы?
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
Макросы любой сложности на заказ. Мониторинг цен конкурентов Последний раз редактировалось EducatedFool; 04.04.2012 в 08:42. |
|||
25.09.2011, 17:51 | #3 |
Регистрация: 23.09.2011
Сообщений: 8
|
Прошу прощенья, думал что вам будет легче с нуля смотреть файлы.
В общем вот такой макрос, я хочу запустить из файла меню - excel, дело в том что необходимо запускать слияние из файла, для создания писем, так как человек который будет нажимать кнопку не понимает что такое слияние! По поводу склонений, они уже вбиты в книгу макросов файла word - Письмо, но я не понимаю как она должна работать, что же надо дописать в макросе что бы он автоматически склонял фамилии, ведь база для склонения уже есть вместе с надстройкой! ЗАРАНЕЕ СПАСИБОexcel.rar Письмо.doc Sub Макрос3() ' ' Макрос3 Макрос ' ' With ActiveDocument.MailMerge .Destination = wdSendToNewDocument .SuppressBlankLines = True With .DataSource .FirstRecord = wdDefaultFirstRecord .LastRecord = wdDefaultLastRecord End With .Execute Pause:=False End With ChangeFileOpenDirectory _ "C:\Documents and Settings\Администратор\Рабочий стол\Документы для Middle-Officeп\Письма по нарушениям\" ActiveDocument.SaveAs FileName:="Письма.doc", FileFormat:=wdFormatDocument _ , LockComments:=False, Password:="", AddToRecentFiles:=True, _ WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _ SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _ False Windows("Письмо [Режим ограниченной функциональности]").Activate Windows("Письма [Режим ограниченной функциональности]").Activate End Sub |
01.10.2011, 12:42 | #4 |
Регистрация: 23.09.2011
Сообщений: 8
|
ПОЧЕМУ
Если мне сказали что могут сделать макрос, переведя его на движок exel, то почему не делают. Я ведь его ( С БОЛЬШИМ ТРУДОМ для себя) записал, выложил, значит меня дезинформировали. Помогите мне пожалуйста, переведите макрос, так что бы он с кнопки запускался в ексель ( ПЛИЗ)
|
01.10.2011, 13:54 | #5 | |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
Цитата:
с Вас взяли предоплату и не выполнили работу? или кто лично что-то должен Вам лично? есть такие... поэтому, надеюсь мысль понятна, не стану ее развивать А по поводу документа слияния: при обьединеии документа слияния есть возможность стандартно указать какие записи из источника данных должны попасть в итоговый документ. возможности встроенного фильтра вполне приспособлены чтобы задать разнообразные условия отбора записей.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
|
01.10.2011, 14:06 | #6 | ||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
Или вы считаете, что если вы «С БОЛЬШИМ ТРУДОМ» записали макрорекордером простейший макрос, да ещё и выложили здесь (кстати, не думал, что это так сложно), то мы должны всё бросить, и переделывать ваш код (который, кстати, не очень-то и подходит для этой задачи)? Сначала вы говорили о помощи: Цитата:
(покажите этот код - я его не видел в ваших файлах...) PS: Есть же у меня на сайте готовое решение - чем оно не подходит? http://excelvba.ru/code/CreateWordDocuments Не хотите делать самостоятельно - можете заказать программу (пример подобной программы, со склонениями и т.п.) PPS: Ваша задача легко решается вообще без использования макросов - именно для этого в Word реализовано слияние. Если уж делать макрос - то только для сохранения результатов слияния в отдельные файлы (но какой в этом смысл?) |
||
01.10.2011, 17:37 | #7 |
Регистрация: 23.09.2011
Сообщений: 8
|
Здравствуйте господа программисты, простити если вы меня не правильно поняли, я просто хотел добиться какого-либо диалога с программистом по поводу своей проблемы. Дело в том что я пытаюсь написать макрос с предложенного сайта по созданию писем под свои письма, но так как я не понимаю языка программирования не пойму правильно ли я меняю несколько основных областей относимых только к моему файлу в коде:
1. Имя файла шаблона должно ли быть в той же папке где содержится файл с данным макросом excel 2. Можно ли указать путь для файла- шаблона word ( в моем случае это C:\Base Deal\Письмо 308.dot) ТАКИМ ОБРАЗОМ я думаю что надо вставить здесь: ПутьШаблона = [COLOR="rgb(160, 82, 45)"][/COLOR]C:\Base Deal\Письмо 308.dot(ThisWorkbook.FullName, ThisWorkbook.Name, ИмяФайлаШаблона) Filename = НоваяПапка & [COLOR="rgb(160, 82, 45)"]ФИО[/COLOR] & РасширениеСоздаваемыхФайлов pi.StartNewAction p, p + a / 3, "Создание нового файла на основании шаблона", ФИО Set WD = WA.Documents.Add(ПутьШаблона): Filename = НоваяПапка & ФИО & РасширениеСоздаваемыхФайлов 3. Можно ли так же указать путь для файла в котором будут обрабатываться столбцы ( ИЛИ НЕОБХОДИМО ПИСАТЬ МАКРОС НЕПОСРЕДСТВЕННО ИЗ НЕГО) - я думаю надо сделать так ЖЕ КАК ВЫШЕ. 4. ОЧЕНЬ НЕОБХОДИМО ПЕРЕРАБОТАТЬ ПУТЬ СОХРАНЕНИЯ ДАННЫХ ПИСЕМ - V:\Нарушения\2011 !!! И НАИМЕНОВАНИЯ ДАННОЙ ПАПКИ ( с датой просто прекрасный ход, но вот вместо договоров нужно сделать слово ПИСЬМА, желательно убрать время и хотелось бы конечно оставить только месяц из даты) Я думаю надо сделать так по отношению к названию папки, но по поводу пути их сохранения не знаю. pi.StartNewAction s2, , "Завершение работы приложения Microsoft Word", " ", " " WA.Quit False: pi.Hide msg = "ПИСЬМА " & rc & " договоров. Все они находятся в папке" & vbNewLine & НоваяПапка MsgBox msg, vbInformation, "Готово" End Sub Function NewFolderName() As String NewFolderName = Replace(ThisWorkbook.FullName, ThisWorkbook.Name, "[COLOR="rgb(160, 82, 45)"][/COLOR]ПИСЬМА,сформированные " & Get_Now) MkDir NewFolderName End Function 5. САМОЕ ВАЖНОЕ ЧТО Я даже примерно не могу разобрать, по поводу выбора столбца для наименования файлов внутри папки( я например хочу что бы файлы назывались по коду клиента в моем случае) На мой взгляд надо сделать так: For Each row In ActiveSheet.Rows("5:" & r) With row ФИО = Trim$(.Cells(1)) & " " & Trim$(.Cells(2)) & " " & Trim$(.Cells(3)) Filename = НоваяПапка & [COLOR="rgb(160, 82, 45)"]КОД КЛИЕНТА[/COLOR] & РасширениеСоздаваемыхФайлов pi.StartNewAction p, p + a / 3, "Создание нового файла на основании шаблона", ФИО Set WD = WA.Documents.Add(ПутьШаблона): [COLOR="rgb(160, 82, 45)"]DoEvents[/COLOR] pi.StartNewAction p + a / 3, p + a * 2 / 3, "Замена данных ...", ФИО For i = 1 To КоличествоОбрабатываемыхСтолбцов FindText = Cells(1, i): ReplaceText = Trim$(.Cells(i)) ' так почему-то заменяет не всё (не затрагивает таблицу) 'WA.Selection.Find.Execute FindText, , , , , , , wdFindContinue, False, ReplaceText, True К ФАЙЛУ ПРИКРЕПЛЕН ПЕРВОНАЧАЛЬНЫЙ МАКРОС, который я хочу под себя переделать. Текстовый документ.txt СПАСИБО ЗАРАНЕЕ. |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Макрос замены в word | Foma-78 | Microsoft Office Word | 3 | 19.06.2012 05:33 |
Макрос поиска в MO Word! | auqarius | Microsoft Office Word | 5 | 18.04.2011 02:20 |
Макрос в MO Word | auqarius | Помощь студентам | 0 | 11.04.2011 22:50 |
Макрос для Word | Squash | Помощь студентам | 1 | 28.03.2011 21:00 |
Макрос в Word | Mictiann | Microsoft Office Word | 1 | 12.09.2007 09:35 |