Страницы: 1
RSS
Скопировать и вставить макрос в модуль листа Макросом
 
Здравствуйте, прошу Вашей помощи в решении такой проблемы:
Как можно скопировать С Модуля1 макрос и вставить в модуль листа, сделав это макросом ).

Немного лирики. Часто просят сделать, что б при изменение фильтра одной сводной, менялись все сводные на листе.
Так как я лентяй, хочу попробовать сделать  Надстройку, клацаешь на кнопку и макрос вставляет процедуру в модуль листа текущей книги активного листа ).
Код
1
ThisWorkbook.VBProject.VBComponents("Module1").CodeModule.Lines(1,60)  
Так планирую собрать весь макрос, а как его теперь впихнуть в модуль ?

Кто что может подсказать навести на путь праведный.
П.С. в макросах не ахти

Файл не загружается вот сам макрос который хочу переместить с модуля в модуль листа:
Скрытый текст
 
Цитата
Xapa6apga пишет: Кто что может подсказать навести на путь праведный.
Может ЭТО  чем поможет
Согласие есть продукт при полном непротивлении сторон
 
неправильный подход, да и сложный

если у вас уже запущена надстройка на компе пользователя, - она сама может перехватить это событие, и выполнить код
Внедрять макросы в файл пользователя - совсем не обязательно
К тому же, если вы потом подправите код, - все будет работать (а, в вашем случае, придется заменять старый код новым)

пример кода есть здесь:
http://www.excel-vba.ru/chto-umeet-excel/kak-otsledit-sobytienaprimer-vydelenie-yacheek-v-lyuboj-knige/
 
Цитата
Xapa6apga   П.С. в макросах не ахти
А может лучше сначала стать "в макросах ахти", чем тратить время на неоправданную ничем псевдо автоматизацию?
 
Всем огромное спасибо, но пошел вот таким способом.
Код
1
2
3
4
5
6
7
8
9
Sub Insert_module_in_other_module()
'Скопировать процедуру и вставить её в другой модуль
Dim WS, Sub_Macro As String
 
WS = ActiveWorkbook.ActiveSheet.CodeName   'Ищем модуль активного листа в активной книги
Sub_Macro = ThisWorkbook.VBProject.VBComponents("Массовый_фильтр_свод_табл").CodeModule.Lines(1, 60)    'Копируем макрос с модуля (книга надстроек)
ActiveWorkbook.VBProject.VBComponents(WS).CodeModule.AddFromString (Sub_Macro)    'Вставляем его в модуль активной книги
 
End Sub
Единственный недостача это должна стоять галка "Доверять доступ к объектной модели проектов VBA"

Игорь, мне ну нужно это на постоянной основе, у нас в отделе 3-и человека и иногда начальство просит красивый отчёт, что б с экономить 2-е мин, решил попробовать реализовать такую штуку.
Отдельная благодарность Sanja, по его предоставленной ссылке нашел решение + F1.
Мотя, люблю критику.
Изменено: Xapa6apga - 05.09.2014 18:38:59
Страницы: 1
Читают тему
Наверх
Loading...