Профессиональные приемы работы в Microsoft Excel

Обмен опытом => Microsoft Excel => Тема начата: 0mega от 26.12.2018, 22:23

Название: VBA. копирование Листа вместе с макросом
Отправлено: 0mega от 26.12.2018, 22:23
 С наступающим.

есть макрос который копирует Лист и создает копию в другой папке
Sub Copy_Clear()
   Dim wkbNew As Workbook
    Sheets("3AKA3").Copy
    Set wkbNew = ActiveWorkbook
    wkbNew.Sheets(1).Name = "3AKA3"

и еще всякое-разное, которе здесь не имеет значения ...

Это все работает .
Вместе с таблицей на копию уходит и кнопочка запуска макроса.
Как вместе с копией отправить и макрос  тоже
Чтобы на копии можно было нажать на кнопочку и макрос начинал работать (но уже в другой книге)

Название: Re: VBA. копирование Листа вместе с макросом
Отправлено: _Boroda_ от 26.12.2018, 22:59
Поместите макрос не в стандартный модуль, а в модуль этого копируемого листа
Название: Re: VBA. копирование Листа вместе с макросом
Отправлено: 0mega от 26.12.2018, 23:03
александр, здравствуйте
Для меня это набор некорых понятных слов
нельзя ли в подробностях расстолковать где что взять и куда его поместить ?
Название: Re: VBA. копирование Листа вместе с макросом
Отправлено: _Boroda_ от 27.12.2018, 00:21
Здравствуйте!
Если просто руководство к действию - то ПКМ на ярлычке листа (того, который будем переносить) - Исходный текст - откроется белое окошко, в него нужно вставить нужный макрос. Затем скопировать его название, нажать Контрл F (окошко поиска), вставить туда скопированное, выбрать точку Сurrent Project и нажать Искать. Первым найдет тот макрос, который только что был вставлен, а вторым найдет тот, который уже в книге был, но сейчас нам стал ненужен. Его нужно удалить (начиная с Sub и до следующего End Sub). Возможно получится наоборот - ненужный найдется первым, а нужный вторым, это зависит от положения курсора в момент начала поиска. Понять, где Вы находитесь, можно по шапке того окна, где в данный момент стоит курсор
По поводу более подробно почитайте например вот здесь
https://www.excel-vba.ru/chto-umeet-excel/chto-takoe-modul-kakie-byvayut-moduli/
Название: Re: VBA. копирование Листа вместе с макросом
Отправлено: 0mega от 27.12.2018, 00:45
спасибо.
Все получилось
чтобы не выбирать who is who Я оставил оба макроса
пока не конфликтуют
Название: Re: VBA. копирование Листа вместе с макросом
Отправлено: 0mega от 27.12.2018, 11:52
тестовый  вариант на "тройке" работает отлично.
Рабочий 13-ый excel начинает "качать права".  То ему не так, это ему не эдак ...
Иду на уступки и меняю расширение  на .xlsm
все равно машина ругается и указывает на формат сохранения .
что от меня хочет машина и как удовлетворить ее запросы
Название: Re: VBA. копирование Листа вместе с макросом
Отправлено: _Boroda_ от 27.12.2018, 12:24
Поверните уже монитор к окну лицом, а то мне не видно что там в коде написано
Название: Re: VBA. копирование Листа вместе с макросом
Отправлено: 0mega от 27.12.2018, 13:58
Этот код на тройке работает а на десятке не хочет. Ну это естественно. Расширение не то
wkbNew.SaveAs "C:\users\Admin\desktop\APXUB\3AKA3 " & Year(Now()) & "_" & Second(Now()) & ".xls"

для 10-ки переписал на
wkbNew.SaveAs "C:\users\Admin\desktop\APXUB\3AKA3 " & Year(Now()) & "_" & Second(Now()) & ".xlsm"
но и такой вариант ее (10-ку) не устраивает
Название: Re: VBA. копирование Листа вместе с макросом
Отправлено: boa от 29.12.2018, 18:31
Для метода SaveAs (https://docs.microsoft.com/ru-ru/office/vba/api/excel.workbook.saveas) указывайте явно формат файла (https://docs.microsoft.com/ru-ru/office/vba/api/excel.xlfileformat) и будет работать на всех версиях
wkbNew.SaveAs Filename:="C:\users\Admin\desktop\APXUB\3AKA3 " & Year(Now()) & "_" & Second(Now()) & ".xls", FileFormat:=xlExcel8