powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Можно ли в Excel управлять Макросами из одного файла в другом?
25 сообщений из 34, страница 1 из 2
Можно ли в Excel управлять Макросами из одного файла в другом?
    #38132778
Юра613
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день

Подскажите пож. есть ли способ программно из одной книги эксель удалять и добавлять макросы в другой?

Например есть Книга1 в которой хранится исходный код, код постоянно дорабатывается. Можно ли этот доработанный код из Книги1 перекинуть в Книгу2,3,4....n (или как-нить програмно заменить предыдущие версии кода на новый)?
...
Рейтинг: 0 / 0
Можно ли в Excel управлять Макросами из одного файла в другом?
    #38133445
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юра613,

можно, примеры кода на форуме были.
Попробуйте поискать по таким ключевым словам как "VBProjects." или "Доверять доступ к Visual Basic Project".
...
Рейтинг: 0 / 0
Можно ли в Excel управлять Макросами из одного файла в другом?
    #38146997
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы таких проблем не возникало лучше написать add-in.
...
Рейтинг: 0 / 0
Можно ли в Excel управлять Макросами из одного файла в другом?
    #38147468
Юра613
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lbppb , да но add-in же все равно надо будет заменять во всех файлах. по трудозатратам тоже самое что заходить в каждый файл и и заменять макрос.

В коллективе одни барышни работают, я не могу их просить самостоятельно заменять надстройки, иначе встречу шквал воплей
...
Рейтинг: 0 / 0
Можно ли в Excel управлять Макросами из одного файла в другом?
    #38147507
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юра613 lbppb , да но add-in же все равно надо будет заменять во всех файлах. по трудозатратам тоже самое что заходить в каждый файл и и заменять макрос.

В коллективе одни барышни работают, я не могу их просить самостоятельно заменять надстройки, иначе встречу шквал воплей

Нет, не все равно. Основную часть кода вы пишите в add-in, которым пользуются все ваши файлы-барышни. А add-in он один!))) и лежит в папке %appdata%\Microsoft\AddIns. Если какой код и требуется в отдельно взятых файлых так это events, которые можно написать (изменить через add-in при помощи VBE) один раз и которые будут так же использовать основной код из add-in. Все, что останется, так это при каждом обновлении копировать файл в нужное место. А нужное место при желании можно изменить в реестре. В общем add-in это спасение вашей души.
...
Рейтинг: 0 / 0
Можно ли в Excel управлять Макросами из одного файла в другом?
    #38147698
Юра613
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lbppb, уточню

т.е. я могу выложить файл-надстройку в какую-нить общую сетевую папку, и привязать эту надстройку ко всем нужным мне файлам. В случае изменений заменять эту надстройку в одном месте и все, так?
...
Рейтинг: 0 / 0
Можно ли в Excel управлять Макросами из одного файла в другом?
    #38147986
Юра613
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lbppb, уточню

т.е. я могу выложить файл-надстройку в какую-нить общую сетевую папку, и привязать эту надстройку ко всем нужным мне файлам. В случае изменений заменять эту надстройку в одном месте и все, так?
...
Рейтинг: 0 / 0
Можно ли в Excel управлять Макросами из одного файла в другом?
    #38148079
Юра613
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем сам проверил.
Можно выложить в общий доступ и прикрутить ко всем нужным файлам надстройку, а потом редактировать ее.

Спасибо всем за помощь
...
Рейтинг: 0 / 0
Можно ли в Excel управлять Макросами из одного файла в другом?
    #38213185
ИВП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется файл «Книга.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»?
...
Рейтинг: 0 / 0
Можно ли в Excel управлять Макросами из одного файла в другом?
    #38213224
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИВП,

Только через Application.Run
В Книга2.xls пишите только код вызова:
Код: vbnet
1.
2.
3.
Sub RunFromAnotherWb()
    Application.Run "'Книга1.xls'!ИмяМакроса"
End Sub
...
Рейтинг: 0 / 0
Можно ли в Excel управлять Макросами из одного файла в другом?
    #38213279
ИВП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_Prist Только через Application.Run
В Книга2.xls пишите только код вызова:
Sub RunFromAnotherWb()
Application.Run "'Книга1.xls'!ИмяМакроса"
End Sub
Но в удобном Excel2003 в отличие от модного Exce2007 этого делать не требуется!!!!

Файлов вида "Книга2" очень много, и для каждого требуется использовать макрос из "Книга1". Если залезать (или залазать?) в каждый файл "Книга2" для вставки Вашего кода, то проще туда засунуть макрос из "Книга1"
...
Рейтинг: 0 / 0
Можно ли в Excel управлять Макросами из одного файла в другом?
    #38213336
Фотография Serge 007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИВПв удобном Excel2003 в отличие от модного Exce2007 этого делать не требуется!
Да что Вы говорите! По Вашему в 2003 живёт маленький волшебник, который читает Ваши мысли и сам запускает нужные макросы?

ИВПФайлов вида "Книга2" очень много, и для каждого требуется использовать макрос из "Книга1"Макрос из "Книга1" поместите в Personal (или в надстройку), тогда он будет доступен в любом файле Excel
...
Рейтинг: 0 / 0
Можно ли в Excel управлять Макросами из одного файла в другом?
    #38213359
tolikt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как я понимаю, у каждого пользователя есть свои рабочие файлы, с которыми что-то делается макросом, а в самом файле с нужным макросом пользователи ничего не меняют.
Если уж есть общая папка, то можно поступить вообще топорно: расположить ней сам файл с макросом с общим доступом.
Но чтоб макрос срабатывал только из книги в общей папке, в файле надо добавить макрос на открытие файла. Что-то типа:
Код: vbnet
1.
2.
3.
4.
5.
Private Sub Workbook_Open()
If ThisWorkbook.Path <> "Путь к общей папке" Then
ThisWorkbook.Close SaveChanges:=False
End If
End Sub

Ну и свой файл с меняющимся макросом по необходимости копировать в общую папку с заменой старого варианта и открытием общего доступа.
Данный вариант лучше надстройки тем, что при появлении нового пользователя у самого него ничего в настройках делать не надо. Лишь был доступ к общей папке и разрешены макросы.
Во всяком случае, я так и сделал.
...
Рейтинг: 0 / 0
Можно ли в Excel управлять Макросами из одного файла в другом?
    #38213375
ИВП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДа что Вы говорите! По Вашему в 2003 живёт маленький волшебник, который читает Ваши мысли и сам запускает нужные макросы?

Не сам, а при нажатии в первом файле на кнопку , к который "прикреплен" макрос из второго файла.
Более того, только что сходил к соседям на 2007 - тоже все ОК.

Значит, не получается в 2010!!!! (визуально модные ексели я не различаю, поэтому подумал на 2007).

авторМакрос из "Книга1" поместите в Personal (или в надстройку), тогда он будет доступен в любом файле Excel
Это надо сделать на всех компьютерах? Не подходит ((((
авторЕсли уж есть общая папка,
Общей папки нет, т.к. сети нет.
...
Рейтинг: 0 / 0
Можно ли в Excel управлять Макросами из одного файла в другом?
    #38213643
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИВП,

Лирическое отступление, начиная с 2007 офиса файлы с макросами имеют расширение .xlsm
Мелкомягкие не дают 100% гарантии на совместимость версий, именно по этой причине кодами должны заниматься люди, различающие версии офиса, винды, ну и за одно 32/64 битность, ибо все это имеет значение.

ИМХО, пути решения вам предложили. Если нет сети, то полагаю, что с каждым случаем можно разобраться вручную. Ну или если горазды, то можно написать установочник, который скопирует куда надо, например, add-in с нужными макросами и разослать каждому юзверю.
...
Рейтинг: 0 / 0
Можно ли в Excel управлять Макросами из одного файла в другом?
    #38213667
ИВП.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторкодами должны заниматься люди, различающие версии офиса, винды, ну и за одно 32/64 битность
В рассматриваемом случае компьютеров у пользователя может быть много (на работе, дома, ноутбук).
Где он будет работать - его личное дело.
Какие там Офисы установлены - неизвестно.

Все пользователи получают исходный файл в Ексел 2003, из которого у себя с использованием встроенных в него макросов
формируют 15-20 "копий" с различными наборами данных.
К сожалению, после того, как они эти файлы уже сформировали, выяснилось,
что надо кое-что в них доработать. Для этого им разослан файл с дополнительными
макросами.
Как уже сказал ранее, в 2003 и 2007 - все ОК. Там где не получилось - наверное, 2010 (посмотрю завтра).
Про add-in - будем посмотреть
...
Рейтинг: 0 / 0
Можно ли в Excel управлять Макросами из одного файла в другом?
    #38213733
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИВП.,

А вот если бы вы были нормальным разработчиком - такого бы не было. Поскольку данные и код можно (нужно) размещать в разных местах. Для чего вам, граждане, xlsx и xlsm разделили?
Да и сейчас ничего сложного (для понимающего) нет - надо просто написать файл так, чтобы он мог импортировать предыдущие данные, а не встраиваться в разношерстные предыдущие копии...
...
Рейтинг: 0 / 0
Можно ли в Excel управлять Макросами из одного файла в другом?
    #38213753
ИВП.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нормальному разработчику от не нормального.

AndreTMчтобы он мог импортировать предыдущие данные, а не встраиваться в разношерстные предыдущие копии...
Над этим сейчас и работаем.

AndreTMДля чего вам, граждане, xlsx и xlsm разделили?
Разделили где? В гламурном Ёкселе 2007? Указывал выше, что всё сделано в Ёкселе 2003

Не в тему, но ЗАОДНО уж подскажите ненормальному противнику риббонов: как клавишами вызвать в Ёкселе2007, 2010 "Поиск решения" (аналогично тому, как это сделано в Ёкселе 2003: Alt+Е, Р)? Очень надо, буду весьма признателен.
...
Рейтинг: 0 / 0
Можно ли в Excel управлять Макросами из одного файла в другом?
    #38213863
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИВП.,

Хм-м... тоже не в тему... В негламурном 2003 что-то никто на Alt+E не реагирует...
Возможно, потому, что надстройка "Поиск решения" дефолтно не устанавливается...
...
Рейтинг: 0 / 0
Можно ли в Excel управлять Макросами из одного файла в другом?
    #38213956
ИВП.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTMВ негламурном 2003 что-то никто на Alt+E не реагирует...
За всех говорить не надо.
Кто это "никто"? Нормальные разработчики?
На Alt+Е реагирует не "никто", а Ёксел - это вызов меню Сервис.

Речь идет о случае, когда "Поиск решения" установлен. Надо постоянно менять данные в таблице и снова запускать задачу на решение. Данные, естественно, изменяются клавишами. Чтобы не хвататься при этом каждый раз за мыша, в Ексель 2003: Alt+Е (меню С е рвис), Р (меню Поиск р ешения), Enter (Выполнить).
В 2007 - исправлены данные, бросаешь клавиатуру, хватаешь мыша, тычешь в кнопку, опять хватаешь клавиатуру и т.д.
...
Рейтинг: 0 / 0
Можно ли в Excel управлять Макросами из одного файла в другом?
    #38214042
ZVI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Один из способов разделения кода и данных (см. совет AndreTM)
для любой версии Excel приведен здесь: Алё, макрос позовите!
...
Рейтинг: 0 / 0
Можно ли в Excel управлять Макросами из одного файла в другом?
    #38214310
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИВП.в Ексель 2003: Alt+Е (меню С е рвис), Р (меню Поиск р ешения), Enter (Выполнить).А если у меня немецкий Excel?
...
Рейтинг: 0 / 0
Можно ли в Excel управлять Макросами из одного файла в другом?
    #38214511
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИВП.В рассматриваемом случае компьютеров у пользователя может быть много (на работе, дома, ноутбук).
Где он будет работать - его личное дело.
Какие там Офисы установлены - неизвестно.

На счет разнесения данных и кодов вам уже написали.

А вот по поводу разных компьютеров, версий и т.п. Это вы еще не сталкивались, когда код ведет себя по-разному или вовсе не работает на разных версиях офиса, винды или битности и тех и других. У вас пока что так, проблемка с внешним функционалом, точнее я бы сказал недовольство. Так вот, возвращаясь к теме знающих людей. Использование разных версий всего вышеупомянутого крайне нежелательно, ибо иначе нужно писать код поддерживающий все возможные варианты.
...
Рейтинг: 0 / 0
Можно ли в Excel управлять Макросами из одного файла в другом?
    #38214883
ИВП.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTMА если у меня немецкий Excel?
В немецком Ёхкселе делается так: Alt+НЕМЕЦКАЯ_буква_подчеркнутая_В_НЕМЕЦКОМ_слове_ Сервис ;
далее НЕМЕЦКАЯ_буква_подчеркнутая_В_НЕМЕЦКИХ_словах_ ПоискРешения

В Испанском Ёхкселе делается так: Alt+ИСПАНСКАЯ_буква_подчеркнутая_В_ИСПАНСКОМ_слове_ Сервис ;
далее ИСПАНСКАЯ_буква_подчеркнутая_В_ИСПАНСКИХ_словах_ ПоискРешения

В Итальянском Ёхкселе .... Во французском Ёкселе... - аналогично.

А как в гламурном Ёкселе нажать кнопку "Поиск решения" без мыша (хоть в немецком, хоть в русском, хоть в итальянском)?

Или у нормальных разработчиков в меню нет горячих клавиш?

lbppbиначе нужно писать код поддерживающий все возможные варианты.
Это даже НЕзнающему Ненормальному разработчику понятно
...
Рейтинг: 0 / 0
Можно ли в Excel управлять Макросами из одного файла в другом?
    #38215016
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИВП.Речь идет о случае, когда "Поиск решения" установлен. Надо постоянно менять данные в таблице и снова запускать задачу на решение. Данные, естественно, изменяются клавишами. Чтобы не хвататься при этом каждый раз за мыша, в Ексель 2003: Alt+Е (меню С е рвис), Р (меню Поиск р ешения), Enter (Выполнить).
В 2007 - исправлены данные, бросаешь клавиатуру, хватаешь мыша, тычешь в кнопку, опять хватаешь клавиатуру и т.д.ИВП.А как в гламурном Ёкселе нажать кнопку "Поиск решения" без мыша (хоть в немецком, хоть в русском, хоть в итальянском)?
Кому надо - вообще не вызывают окно "Поиска решения"... http://www.sql.ru/forum/actualthread.aspx?tid=479282
...
Рейтинг: 0 / 0
25 сообщений из 34, страница 1 из 2
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Можно ли в Excel управлять Макросами из одного файла в другом?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]