|
Можно ли в Excel управлять Макросами из одного файла в другом?
|
|||
---|---|---|---|
#18+
Добрый день Подскажите пож. есть ли способ программно из одной книги эксель удалять и добавлять макросы в другой? Например есть Книга1 в которой хранится исходный код, код постоянно дорабатывается. Можно ли этот доработанный код из Книги1 перекинуть в Книгу2,3,4....n (или как-нить програмно заменить предыдущие версии кода на новый)? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2013, 18:15 |
|
Можно ли в Excel управлять Макросами из одного файла в другом?
|
|||
---|---|---|---|
#18+
Юра613, можно, примеры кода на форуме были. Попробуйте поискать по таким ключевым словам как "VBProjects." или "Доверять доступ к Visual Basic Project". ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2013, 12:15 |
|
Можно ли в Excel управлять Макросами из одного файла в другом?
|
|||
---|---|---|---|
#18+
Чтобы таких проблем не возникало лучше написать add-in. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 00:32 |
|
Можно ли в Excel управлять Макросами из одного файла в другом?
|
|||
---|---|---|---|
#18+
lbppb , да но add-in же все равно надо будет заменять во всех файлах. по трудозатратам тоже самое что заходить в каждый файл и и заменять макрос. В коллективе одни барышни работают, я не могу их просить самостоятельно заменять надстройки, иначе встречу шквал воплей ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 12:06 |
|
Можно ли в Excel управлять Макросами из одного файла в другом?
|
|||
---|---|---|---|
#18+
Юра613 lbppb , да но add-in же все равно надо будет заменять во всех файлах. по трудозатратам тоже самое что заходить в каждый файл и и заменять макрос. В коллективе одни барышни работают, я не могу их просить самостоятельно заменять надстройки, иначе встречу шквал воплей Нет, не все равно. Основную часть кода вы пишите в add-in, которым пользуются все ваши файлы-барышни. А add-in он один!))) и лежит в папке %appdata%\Microsoft\AddIns. Если какой код и требуется в отдельно взятых файлых так это events, которые можно написать (изменить через add-in при помощи VBE) один раз и которые будут так же использовать основной код из add-in. Все, что останется, так это при каждом обновлении копировать файл в нужное место. А нужное место при желании можно изменить в реестре. В общем add-in это спасение вашей души. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 12:28 |
|
Можно ли в Excel управлять Макросами из одного файла в другом?
|
|||
---|---|---|---|
#18+
lbppb, уточню т.е. я могу выложить файл-надстройку в какую-нить общую сетевую папку, и привязать эту надстройку ко всем нужным мне файлам. В случае изменений заменять эту надстройку в одном месте и все, так? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 14:01 |
|
Можно ли в Excel управлять Макросами из одного файла в другом?
|
|||
---|---|---|---|
#18+
lbppb, уточню т.е. я могу выложить файл-надстройку в какую-нить общую сетевую папку, и привязать эту надстройку ко всем нужным мне файлам. В случае изменений заменять эту надстройку в одном месте и все, так? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 15:42 |
|
Можно ли в Excel управлять Макросами из одного файла в другом?
|
|||
---|---|---|---|
#18+
В общем сам проверил. Можно выложить в общий доступ и прикрутить ко всем нужным файлам надстройку, а потом редактировать ее. Спасибо всем за помощь ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 16:17 |
|
Можно ли в Excel управлять Макросами из одного файла в другом?
|
|||
---|---|---|---|
#18+
Имеется файл «Книга.xls». В нем есть лист «Лист1». На этом листе есть кнопка, которая запускает макрос «Макрос1», обрабатывающий данный на этом листе. Макрос находится в модуле Module1. «Лист1» копирую в файл «Книга2.xls». В Excel2003 при нажатии кнопки, расположенной на «Лист1» в «Книга2.xls», все работает нормально, т.е c листа «Лист1» в «Книга2.xls» вызывается макрос из модуля файла «Книга1.xls». В Excel2007 при нажатии этой кнопки появляется сообщение «…не могу найти макрос Книга2.xls[module1][Макрос1] …», т.е. Excel ищет этот макрос в модуле файла «Книга2.xls». Файл «Книга1.xls», в котором находится «Макрос1», в обоих случаях открыт. Как в Excel2007 кнопкой запустить из файла «Книга2» макрос, находящийся в файле «Книга1.xls»? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 16:16 |
|
Можно ли в Excel управлять Макросами из одного файла в другом?
|
|||
---|---|---|---|
#18+
ИВП, Только через Application.Run В Книга2.xls пишите только код вызова: Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 16:37 |
|
Можно ли в Excel управлять Макросами из одного файла в другом?
|
|||
---|---|---|---|
#18+
The_Prist Только через Application.Run В Книга2.xls пишите только код вызова: Sub RunFromAnotherWb() Application.Run "'Книга1.xls'!ИмяМакроса" End Sub Но в удобном Excel2003 в отличие от модного Exce2007 этого делать не требуется!!!! Файлов вида "Книга2" очень много, и для каждого требуется использовать макрос из "Книга1". Если залезать (или залазать?) в каждый файл "Книга2" для вставки Вашего кода, то проще туда засунуть макрос из "Книга1" ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 17:00 |
|
Можно ли в Excel управлять Макросами из одного файла в другом?
|
|||
---|---|---|---|
#18+
ИВПв удобном Excel2003 в отличие от модного Exce2007 этого делать не требуется! Да что Вы говорите! По Вашему в 2003 живёт маленький волшебник, который читает Ваши мысли и сам запускает нужные макросы? ИВПФайлов вида "Книга2" очень много, и для каждого требуется использовать макрос из "Книга1"Макрос из "Книга1" поместите в Personal (или в надстройку), тогда он будет доступен в любом файле Excel ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 17:26 |
|
Можно ли в Excel управлять Макросами из одного файла в другом?
|
|||
---|---|---|---|
#18+
Как я понимаю, у каждого пользователя есть свои рабочие файлы, с которыми что-то делается макросом, а в самом файле с нужным макросом пользователи ничего не меняют. Если уж есть общая папка, то можно поступить вообще топорно: расположить ней сам файл с макросом с общим доступом. Но чтоб макрос срабатывал только из книги в общей папке, в файле надо добавить макрос на открытие файла. Что-то типа: Код: vbnet 1. 2. 3. 4. 5.
Ну и свой файл с меняющимся макросом по необходимости копировать в общую папку с заменой старого варианта и открытием общего доступа. Данный вариант лучше надстройки тем, что при появлении нового пользователя у самого него ничего в настройках делать не надо. Лишь был доступ к общей папке и разрешены макросы. Во всяком случае, я так и сделал. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 17:36 |
|
Можно ли в Excel управлять Макросами из одного файла в другом?
|
|||
---|---|---|---|
#18+
авторДа что Вы говорите! По Вашему в 2003 живёт маленький волшебник, который читает Ваши мысли и сам запускает нужные макросы? Не сам, а при нажатии в первом файле на кнопку , к который "прикреплен" макрос из второго файла. Более того, только что сходил к соседям на 2007 - тоже все ОК. Значит, не получается в 2010!!!! (визуально модные ексели я не различаю, поэтому подумал на 2007). авторМакрос из "Книга1" поместите в Personal (или в надстройку), тогда он будет доступен в любом файле Excel Это надо сделать на всех компьютерах? Не подходит (((( авторЕсли уж есть общая папка, Общей папки нет, т.к. сети нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 17:46 |
|
Можно ли в Excel управлять Макросами из одного файла в другом?
|
|||
---|---|---|---|
#18+
ИВП, Лирическое отступление, начиная с 2007 офиса файлы с макросами имеют расширение .xlsm Мелкомягкие не дают 100% гарантии на совместимость версий, именно по этой причине кодами должны заниматься люди, различающие версии офиса, винды, ну и за одно 32/64 битность, ибо все это имеет значение. ИМХО, пути решения вам предложили. Если нет сети, то полагаю, что с каждым случаем можно разобраться вручную. Ну или если горазды, то можно написать установочник, который скопирует куда надо, например, add-in с нужными макросами и разослать каждому юзверю. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 21:25 |
|
Можно ли в Excel управлять Макросами из одного файла в другом?
|
|||
---|---|---|---|
#18+
авторкодами должны заниматься люди, различающие версии офиса, винды, ну и за одно 32/64 битность В рассматриваемом случае компьютеров у пользователя может быть много (на работе, дома, ноутбук). Где он будет работать - его личное дело. Какие там Офисы установлены - неизвестно. Все пользователи получают исходный файл в Ексел 2003, из которого у себя с использованием встроенных в него макросов формируют 15-20 "копий" с различными наборами данных. К сожалению, после того, как они эти файлы уже сформировали, выяснилось, что надо кое-что в них доработать. Для этого им разослан файл с дополнительными макросами. Как уже сказал ранее, в 2003 и 2007 - все ОК. Там где не получилось - наверное, 2010 (посмотрю завтра). Про add-in - будем посмотреть ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 22:00 |
|
Можно ли в Excel управлять Макросами из одного файла в другом?
|
|||
---|---|---|---|
#18+
ИВП., А вот если бы вы были нормальным разработчиком - такого бы не было. Поскольку данные и код можно (нужно) размещать в разных местах. Для чего вам, граждане, xlsx и xlsm разделили? Да и сейчас ничего сложного (для понимающего) нет - надо просто написать файл так, чтобы он мог импортировать предыдущие данные, а не встраиваться в разношерстные предыдущие копии... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2013, 23:36 |
|
Можно ли в Excel управлять Макросами из одного файла в другом?
|
|||
---|---|---|---|
#18+
Нормальному разработчику от не нормального. AndreTMчтобы он мог импортировать предыдущие данные, а не встраиваться в разношерстные предыдущие копии... Над этим сейчас и работаем. AndreTMДля чего вам, граждане, xlsx и xlsm разделили? Разделили где? В гламурном Ёкселе 2007? Указывал выше, что всё сделано в Ёкселе 2003 Не в тему, но ЗАОДНО уж подскажите ненормальному противнику риббонов: как клавишами вызвать в Ёкселе2007, 2010 "Поиск решения" (аналогично тому, как это сделано в Ёкселе 2003: Alt+Е, Р)? Очень надо, буду весьма признателен. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2013, 00:07 |
|
Можно ли в Excel управлять Макросами из одного файла в другом?
|
|||
---|---|---|---|
#18+
ИВП., Хм-м... тоже не в тему... В негламурном 2003 что-то никто на Alt+E не реагирует... Возможно, потому, что надстройка "Поиск решения" дефолтно не устанавливается... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2013, 08:29 |
|
Можно ли в Excel управлять Макросами из одного файла в другом?
|
|||
---|---|---|---|
#18+
AndreTMВ негламурном 2003 что-то никто на Alt+E не реагирует... За всех говорить не надо. Кто это "никто"? Нормальные разработчики? На Alt+Е реагирует не "никто", а Ёксел - это вызов меню Сервис. Речь идет о случае, когда "Поиск решения" установлен. Надо постоянно менять данные в таблице и снова запускать задачу на решение. Данные, естественно, изменяются клавишами. Чтобы не хвататься при этом каждый раз за мыша, в Ексель 2003: Alt+Е (меню С е рвис), Р (меню Поиск р ешения), Enter (Выполнить). В 2007 - исправлены данные, бросаешь клавиатуру, хватаешь мыша, тычешь в кнопку, опять хватаешь клавиатуру и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2013, 10:17 |
|
Можно ли в Excel управлять Макросами из одного файла в другом?
|
|||
---|---|---|---|
#18+
Один из способов разделения кода и данных (см. совет AndreTM) для любой версии Excel приведен здесь: Алё, макрос позовите! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2013, 11:01 |
|
Можно ли в Excel управлять Макросами из одного файла в другом?
|
|||
---|---|---|---|
#18+
ИВП.в Ексель 2003: Alt+Е (меню С е рвис), Р (меню Поиск р ешения), Enter (Выполнить).А если у меня немецкий Excel? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2013, 13:25 |
|
Можно ли в Excel управлять Макросами из одного файла в другом?
|
|||
---|---|---|---|
#18+
ИВП.В рассматриваемом случае компьютеров у пользователя может быть много (на работе, дома, ноутбук). Где он будет работать - его личное дело. Какие там Офисы установлены - неизвестно. На счет разнесения данных и кодов вам уже написали. А вот по поводу разных компьютеров, версий и т.п. Это вы еще не сталкивались, когда код ведет себя по-разному или вовсе не работает на разных версиях офиса, винды или битности и тех и других. У вас пока что так, проблемка с внешним функционалом, точнее я бы сказал недовольство. Так вот, возвращаясь к теме знающих людей. Использование разных версий всего вышеупомянутого крайне нежелательно, ибо иначе нужно писать код поддерживающий все возможные варианты. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2013, 14:57 |
|
Можно ли в Excel управлять Макросами из одного файла в другом?
|
|||
---|---|---|---|
#18+
AndreTMА если у меня немецкий Excel? В немецком Ёхкселе делается так: Alt+НЕМЕЦКАЯ_буква_подчеркнутая_В_НЕМЕЦКОМ_слове_ Сервис ; далее НЕМЕЦКАЯ_буква_подчеркнутая_В_НЕМЕЦКИХ_словах_ ПоискРешения В Испанском Ёхкселе делается так: Alt+ИСПАНСКАЯ_буква_подчеркнутая_В_ИСПАНСКОМ_слове_ Сервис ; далее ИСПАНСКАЯ_буква_подчеркнутая_В_ИСПАНСКИХ_словах_ ПоискРешения В Итальянском Ёхкселе .... Во французском Ёкселе... - аналогично. А как в гламурном Ёкселе нажать кнопку "Поиск решения" без мыша (хоть в немецком, хоть в русском, хоть в итальянском)? Или у нормальных разработчиков в меню нет горячих клавиш? lbppbиначе нужно писать код поддерживающий все возможные варианты. Это даже НЕзнающему Ненормальному разработчику понятно ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2013, 17:44 |
|
Можно ли в Excel управлять Макросами из одного файла в другом?
|
|||
---|---|---|---|
#18+
ИВП.Речь идет о случае, когда "Поиск решения" установлен. Надо постоянно менять данные в таблице и снова запускать задачу на решение. Данные, естественно, изменяются клавишами. Чтобы не хвататься при этом каждый раз за мыша, в Ексель 2003: Alt+Е (меню С е рвис), Р (меню Поиск р ешения), Enter (Выполнить). В 2007 - исправлены данные, бросаешь клавиатуру, хватаешь мыша, тычешь в кнопку, опять хватаешь клавиатуру и т.д.ИВП.А как в гламурном Ёкселе нажать кнопку "Поиск решения" без мыша (хоть в немецком, хоть в русском, хоть в итальянском)? Кому надо - вообще не вызывают окно "Поиска решения"... http://www.sql.ru/forum/actualthread.aspx?tid=479282 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2013, 18:48 |
|
|
start [/forum/topic.php?fid=61&msg=38213224&tid=2174890]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 172ms |
0 / 0 |