Страницы: 1
RSS
Как правильно скопировать файл с макросом?
 
Здравствуйте! На предприятии на рабочем компьютере создал файл для подсчета выработки (http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=51181&MID=425284&tags=&q=Oleg34&FORUM_ID%5B0%5D=0&DATE_CHANGE=0&order=relevance&s=%D0%9D%D0%B0%D0%B9%D1%82%D0%B8#message425284 отдельное спасибо ber$erk). Добавил свои кнопки, то есть развил файл. Выхода в интернет нет и порты USB поотключены. Скопировать готовый файл не смог. Суть в следующем. Файл готов и работает в моей папке "Моя". Я создаю две новые папки "А" и "Б". Теперь из папки "Моя" я этот файл начинаю копировать в "А" и "Б". То есть ->Сохранить как, указываю папку "А" переименовываю файл "январь" ->Сохранить. И так 12-ть раз. Но блин при любом вызове макроса начинает открываться файл из папки "Моя". И при перемещении файла из папки "Моя", не запускается больше ничего, пишет не найден макрос и путь до папки "Моя".
Теперь сам вопрос.
1. Как поудалять все модули какие я создал (так, как я когда у меня не так, как нужно открывались модули, через Alt+F8 начинал их сохранять во всех предложенных вариантах, и в этой Книге, и во всех открытых Книгах, и в "январь". И где теперь они находятся я не знаю. Personal папку я не создавал). И теперь любой файл Excel открывается больше минуты, через какое то белое окно!!! Есть видео всего этого процесса http://www.fayloobmennik.net/3325364
2.Как правильно скопировать файл из папки "Моя". Так, что бы макрос принадлежал только открытой Книге, например "ноябрь_Б_2013". А так мне пришлось выносить на Панель быстрого запуска два модуля, один для "октябрь" из "А" и другой для "октябрь" из "Б". То есть у меня есть файл в папке "Моя", он рабочий. Мне нужно создать две папки "смена А" и "смена Б". В каждой папке по 12-ть файлов от "январь_А_2013" до "декабрь_А_2013". На панели быстрого запуска вынести только одну кнопку для запуска модуля макроса.
Для большей информации, у меня в "Книге" находится пять модулей. Четыре модуля назначены кнопкам на "Лист1", он основной где накапливается информация, 31 Лист на каждый день, и один Лист для праздничных (двойная оплата). Как Вы понимаете во всех "Книгах" они одинаковы.
Hellp! А то завтра чувствую из того, что долго открываются файлы Excel меня казнят  :(  !
 
Цитата
что бы макрос принадлежал только открытой Книге
Макрос не может принадлежать никакой другой книге, кроме той, в которой он сам живёт. А вот обрабатывать он может или "свою" книгу, или активную, или ту, которую Вы ему скажете.
Цитата
Четыре модуля назначены кнопкам
Модули не могут назначаться кнопкам - кнопкам назначаются процедуры, которые находятся внутри этих модулей.
Про копирование: простое копирования файла скопирует и всё его содержимое, в том числе и макросы.
И вообще Ваше сообщение очень сложно переварить))
 
Я полагаю, что в Вашем случае копировать надо закрытые книги, чтобы связь кнопок и макросов была корректной. Закройте файл, который необходимо раскопировать. Создайте его копию как любого другого файла. Проверьте работоспособность.

Если не сработает посмотрите не назначены ли кнопкам макросы в жесткой привязке к имени книги(Applicatin.Run, OnTime и т.п.)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
The_Prist спасибо за совет! Нет, у меня нет жестких привязок. Попробую завтра сделать как Вы предлагаете.
Юрий М Наверное я неправильно выразился.
Цитата
Четыре модуля назначены кнопкам
Я делал так. В редакторе VBA, в Project-VBAProject выбираю нужную мне Книгу, ->Insert ->Module. Открывается пустой <имя_Книги>.xlsm-Module1 (Code). Далее, предполагаю, что мне нужно отправить на печать активный лист, а поскольку все это будет делаться через кнопку ->Разработчик -> Вставить ->Элементы управления формы ->Кнопка, которая и будет кинута на Лист, который нужно распечатать, то он и будет у меня активным. Дальше прописываю например:
Код
Sub Печать_отчета()
Worksheets(1).Range("A1:H10").PrintOut
End Sub
 
Далее сохраняю все. Потом кидаю Кнопку на Лист. Назначаю ей макрос "Печать_отчета"
Вот как то так :).
А, что посоветуете по поводу как то программно или, как то вручную найти и удалить все модули, которые я понасоздавал?
 
Не нужно раскидывать модули с кодом в те книги, листы которых собираетесь обрабатывать (печатать). Макросом из своего файла открываете НУЖНУЮ книгу, и уже лист ЭТОЙ ОТКРЫТОЙ книги отправляете на печать.
 
Понял, учту, спасибо :) !
Страницы: 1
Наверх