Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Переместить надстройку непосредственно внуть файла - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Переместить надстройку непосредственно внуть файла (Макросы/Sub)
Переместить надстройку непосредственно внуть файла
Krash Дата: Среда, 11.01.2017, 04:08 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день!
Возможно ли поместить небезызвестную надстройку WinDatePicker непосредственно внутрь самого файла, чтобы можно было этим файлом с кем-нибудь поделиться и не объяснять человеку, что ему ещё необходимо установить какую-то там надстройку и тем более не объяснять как это сделать?
Я попытался сделать так: открыл надстройку, открыл свой файл и в VBA ProjectExplorer попытался скопировать все объекты надстройки (UserForm, Module и т.д.) в свой файл и в общем-то получилось скопировать всё, кроме объектов Sheet, а без них надстройка работает некорректно. И почему в этой надстройке никак нельзя просмотреть объект Sheet (кнопка View Object не активна!)?
 
Ответить
СообщениеДобрый день!
Возможно ли поместить небезызвестную надстройку WinDatePicker непосредственно внутрь самого файла, чтобы можно было этим файлом с кем-нибудь поделиться и не объяснять человеку, что ему ещё необходимо установить какую-то там надстройку и тем более не объяснять как это сделать?
Я попытался сделать так: открыл надстройку, открыл свой файл и в VBA ProjectExplorer попытался скопировать все объекты надстройки (UserForm, Module и т.д.) в свой файл и в общем-то получилось скопировать всё, кроме объектов Sheet, а без них надстройка работает некорректно. И почему в этой надстройке никак нельзя просмотреть объект Sheet (кнопка View Object не активна!)?

Автор - Krash
Дата добавления - 11.01.2017 в 04:08
Alex_ST Дата: Среда, 11.01.2017, 15:21 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
Если бы Вы выложили эту
небезызвестную надстройку WinDatePicker
здесь со СНЯТЫМ ПАРОЛЕМ, то можно было бы и посмотреть, что к чему.
А на сайте автора она запаролена.
Но вообще-то перемещать код процедур из надстройки в модуль файла - это не есть хорошо, т.к. ГРАМОТНО СОЗДАННАЯ НАДСТРОЙКА при загрузке по событию Workbook_Open должна сначала (для исключения дублирования пунктов) удалить ранее кем-то созданный аналогичный по названию пункт меню "Ячейка" (Application.CommandBars("Cell") ), а потом уже создать собственный такой же пункт.
При закрытии же файла ГРАМОТНО СОЗДАННАЯ НАДСТРОЙКА по событию Workbook_BeforeClose обязана "убрать за собой", т.е. удалить всё, что насоздавала.
Представьте случай: Вы на своём компе с установленной надстройкой открываете файл с аналогичным кодом.
Что он делает? Правильно: удаляет из меню "Ячейка" ранее созданный запущенной надстройкой пункт "Календарь" и создаёт свой.
А при закрытии файла пункт "Календарь" удаляется.
Что в результате получается? Правильно: пункт "Календарь" из Вашего меню исчезает и чтобы восстановить его Вы обязаны переоткрыть надстройку (что не так то и просто) в ручную или закрыть-открыть Excel



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Четверг, 12.01.2017, 08:15
 
Ответить
СообщениеЕсли бы Вы выложили эту
небезызвестную надстройку WinDatePicker
здесь со СНЯТЫМ ПАРОЛЕМ, то можно было бы и посмотреть, что к чему.
А на сайте автора она запаролена.
Но вообще-то перемещать код процедур из надстройки в модуль файла - это не есть хорошо, т.к. ГРАМОТНО СОЗДАННАЯ НАДСТРОЙКА при загрузке по событию Workbook_Open должна сначала (для исключения дублирования пунктов) удалить ранее кем-то созданный аналогичный по названию пункт меню "Ячейка" (Application.CommandBars("Cell") ), а потом уже создать собственный такой же пункт.
При закрытии же файла ГРАМОТНО СОЗДАННАЯ НАДСТРОЙКА по событию Workbook_BeforeClose обязана "убрать за собой", т.е. удалить всё, что насоздавала.
Представьте случай: Вы на своём компе с установленной надстройкой открываете файл с аналогичным кодом.
Что он делает? Правильно: удаляет из меню "Ячейка" ранее созданный запущенной надстройкой пункт "Календарь" и создаёт свой.
А при закрытии файла пункт "Календарь" удаляется.
Что в результате получается? Правильно: пункт "Календарь" из Вашего меню исчезает и чтобы восстановить его Вы обязаны переоткрыть надстройку (что не так то и просто) в ручную или закрыть-открыть Excel

Автор - Alex_ST
Дата добавления - 11.01.2017 в 15:21
Krash Дата: Среда, 11.01.2017, 17:17 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Представьте случай

исхожу из того, что этот случай не возможен, так как предполагаемые пользователи моего файла с календарем понятия не имеют что такое вообще "надстройка". Ну а настройка эта как раз из разряда грамотных - убирает всё за собой
повторюсь, что проблема для меня сейчас одна: как перенести листы Sheet1 и Sheet2, а всё остальное я за минуту без проблем уже перенес через экспорт-импорт. А эти листы импортируются почему-то как класс и соответственно нифига не работает, так как именно на них (если я правильно понимаю) содержится словарь всех 5 языков


Сообщение отредактировал Manyasha - Четверг, 12.01.2017, 10:58
 
Ответить
Сообщение
Представьте случай

исхожу из того, что этот случай не возможен, так как предполагаемые пользователи моего файла с календарем понятия не имеют что такое вообще "надстройка". Ну а настройка эта как раз из разряда грамотных - убирает всё за собой
повторюсь, что проблема для меня сейчас одна: как перенести листы Sheet1 и Sheet2, а всё остальное я за минуту без проблем уже перенес через экспорт-импорт. А эти листы импортируются почему-то как класс и соответственно нифига не работает, так как именно на них (если я правильно понимаю) содержится словарь всех 5 языков

Автор - Krash
Дата добавления - 11.01.2017 в 17:17
bmv98rus Дата: Среда, 11.01.2017, 22:17 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4111
Репутация: 768 ±
Замечаний: 0% ±

Excel 2013/2016
Krash,

исхожу из того, что этот случай не возможен, так как предполагаемые пользователи моего файла с календарем понятия не имеют что такое вообще "надстройка". Ну а настройка эта как раз из разряда грамотных - убирает всё за собой
А открыть два файла пытливые предпологаемые пользователи могут?


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Среда, 11.01.2017, 22:18
 
Ответить
СообщениеKrash,

исхожу из того, что этот случай не возможен, так как предполагаемые пользователи моего файла с календарем понятия не имеют что такое вообще "надстройка". Ну а настройка эта как раз из разряда грамотных - убирает всё за собой
А открыть два файла пытливые предпологаемые пользователи могут?

Автор - bmv98rus
Дата добавления - 11.01.2017 в 22:17
Krash Дата: Четверг, 12.01.2017, 02:57 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
А открыть два файла пытливые предпологаемые пользователи могут?

Конечно же нет, открывать-то нечего! Пришел сюда за помощью, вместо этого высасывают проблемы из пальца...
 
Ответить
Сообщение
А открыть два файла пытливые предпологаемые пользователи могут?

Конечно же нет, открывать-то нечего! Пришел сюда за помощью, вместо этого высасывают проблемы из пальца...

Автор - Krash
Дата добавления - 12.01.2017 в 02:57
Alex_ST Дата: Четверг, 12.01.2017, 09:28 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
Пришел сюда за помощью, вместо этого высасывают проблемы из пальца...
Вообще-то после таких слов, да и вообще за нарушение правил форума - не выкладывание файла, да ещё и крамольное предположение о том, что здесь кто-то нарушает авторские права и вскрывает запароленные проекты shock :D советовать Вам что-нибудь не следовало…
Но раз уж файл без пароля Вы таки-выложили в конце-концов, да и скачал я его вчера вечером из дома (с работы не могу - собаки-сисадмины!), а сегодня на работе с утра посмотрел и разобрался, то ладно...
В общем дело в том, что, просмотрев код, я увидел, что в процедурах надстройки идёт интенсивное обращение к её листам Sheet1 и Sheet2
Когда пересохранил надстройку как книгу, открыл листы и увидел на них кучу информации. Зачем нужны данные листа Sheet1 я не стал разбираться, а вот на Sheet2 явно тексты на разных языках.
При этом обращение идёт не по именам листов (а ещё лучше бы по CodeName), а по их индексу - типа Sheets(i)
Поэтому просто перетащить листы в новую книгу нельзя.
Можно в принципе было бы разобрать код (чужой и практически без комментариев - killed ) и попытаться всё переделать под обращение по CodeName (чтобы тупые юзверги листы не переименовывали)... Но НАФИГА?
Проще выбрать в Готовых решениях какой-нибудь другой календарь из нескольких там выложенных.
Вот, например,: (1), (2), (3)



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Четверг, 12.01.2017, 09:31
 
Ответить
Сообщение
Пришел сюда за помощью, вместо этого высасывают проблемы из пальца...
Вообще-то после таких слов, да и вообще за нарушение правил форума - не выкладывание файла, да ещё и крамольное предположение о том, что здесь кто-то нарушает авторские права и вскрывает запароленные проекты shock :D советовать Вам что-нибудь не следовало…
Но раз уж файл без пароля Вы таки-выложили в конце-концов, да и скачал я его вчера вечером из дома (с работы не могу - собаки-сисадмины!), а сегодня на работе с утра посмотрел и разобрался, то ладно...
В общем дело в том, что, просмотрев код, я увидел, что в процедурах надстройки идёт интенсивное обращение к её листам Sheet1 и Sheet2
Когда пересохранил надстройку как книгу, открыл листы и увидел на них кучу информации. Зачем нужны данные листа Sheet1 я не стал разбираться, а вот на Sheet2 явно тексты на разных языках.
При этом обращение идёт не по именам листов (а ещё лучше бы по CodeName), а по их индексу - типа Sheets(i)
Поэтому просто перетащить листы в новую книгу нельзя.
Можно в принципе было бы разобрать код (чужой и практически без комментариев - killed ) и попытаться всё переделать под обращение по CodeName (чтобы тупые юзверги листы не переименовывали)... Но НАФИГА?
Проще выбрать в Готовых решениях какой-нибудь другой календарь из нескольких там выложенных.
Вот, например,: (1), (2), (3)

Автор - Alex_ST
Дата добавления - 12.01.2017 в 09:28
bmv98rus Дата: Четверг, 12.01.2017, 10:19 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4111
Репутация: 768 ±
Замечаний: 0% ±

Excel 2013/2016
[offtop] Alex_ST,

Полностью поддерживаю. Разве что MS давно моглиб сделать встроенную опцию. Я не иследовал вопрос что скрвто в потрахах Excel, но помнится давным давно был "DOOM" зашит. На это и время и место было, а на востребованный инструмент внимаия не обращают. При этом я считаю эту программу одним из лучших творений MS.


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Четверг, 12.01.2017, 10:20
 
Ответить
Сообщение[offtop] Alex_ST,

Полностью поддерживаю. Разве что MS давно моглиб сделать встроенную опцию. Я не иследовал вопрос что скрвто в потрахах Excel, но помнится давным давно был "DOOM" зашит. На это и время и место было, а на востребованный инструмент внимаия не обращают. При этом я считаю эту программу одним из лучших творений MS.

Автор - bmv98rus
Дата добавления - 12.01.2017 в 10:19
Krash Дата: Четверг, 12.01.2017, 10:29 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Вообще-то после таких слов советовать Вам что-нибудь не следовало

а никаких советов не было и ДО каких-либо слов, вместо этого 2 пользователя пытались отыскать какие-то несуществующие проблемы несуществующего файла (зачем???)

Когда пересохранил надстройку как книгу, открыл листы

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

а никаких советов не было и ДО каких-либо слов, вместо этого 2 пользователя пытались отыскать какие-то несуществующие проблемы несуществующего файла (зачем???)

Когда пересохранил надстройку как книгу, открыл листы

Судорожно пытался это сделать - не вышло, выдает какую-то ошибку. Но это уже не важно, скопировал листы другим способом. Надстройка успешно вставилась в файл и прекрасно работает, этот вопрос закрыт. Буду благодарен, если подскажете как назначить событие на клик по любому из чекбоксов формы. Нашел решение (через классы) в другом источнике, но не работает - выпадает ошибка((

Автор - Krash
Дата добавления - 12.01.2017 в 10:29
Alex_ST Дата: Четверг, 12.01.2017, 10:48 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
… скопировал листы другим способом. Надстройка успешно вставилась в файл и прекрасно работает
Если не переделали код под обращение по CodeName или как минимум не сделали листы "шибко спрятанными" (VeryHidden), то ждите "восторженных" :) отзывов пользователей по причине, которую я объяснял выше.

Судорожно пытался это сделать
А в чём проблема-то? Указываете в свойствах модуля ЭтаКнига (ThisWorkbook) свойство IsAddin=False и пытаетесь сохранить проект. Далее - по указаниям Excel'я



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение
… скопировал листы другим способом. Надстройка успешно вставилась в файл и прекрасно работает
Если не переделали код под обращение по CodeName или как минимум не сделали листы "шибко спрятанными" (VeryHidden), то ждите "восторженных" :) отзывов пользователей по причине, которую я объяснял выше.

Судорожно пытался это сделать
А в чём проблема-то? Указываете в свойствах модуля ЭтаКнига (ThisWorkbook) свойство IsAddin=False и пытаетесь сохранить проект. Далее - по указаниям Excel'я

Автор - Alex_ST
Дата добавления - 12.01.2017 в 10:48
Alex_ST Дата: Четверг, 12.01.2017, 10:50 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

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



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеУ меня на 2003 надстройка, естественно, вообще не запускается, поэтому по работе формы сказать ничего не могу.
Но обработчики событий на чекбоксы поставить обычно нет проблем.

Автор - Alex_ST
Дата добавления - 12.01.2017 в 10:50
Manyasha Дата: Четверг, 12.01.2017, 10:58 | Сообщение № 11
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
как назначить событие на клик по любому из чекбоксов формы

Этот вопрос к данной теме не относится, создавайте новую.

А на сайте автора она запаролена.

выкладываю файл без пароля

А у Автора спросили разрешения? Файл надстройки из поста удаляю!


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщение
как назначить событие на клик по любому из чекбоксов формы

Этот вопрос к данной теме не относится, создавайте новую.

А на сайте автора она запаролена.

выкладываю файл без пароля

А у Автора спросили разрешения? Файл надстройки из поста удаляю!

Автор - Manyasha
Дата добавления - 12.01.2017 в 10:58
Alex_ST Дата: Четверг, 12.01.2017, 11:34 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
А у Автора спросили разрешения?
Ну, вообще-то, автор мало того, что не русскоязычный, так ещё и надстройка бесплатная и совсем простым паролем закрыта явно просто от шаловливых ручек, а не по причине от ущемления авторских я.. прав.
Так что в удалении её из поста, имхо, нет необходимости. Тем более, что в принципе нет особого смысла её, запароленную, качать с сайта автора, когда в массе мест в сети она лежит уже открытая. И если бы у меня первой ссылкой в гуглении вылез не сайт автора, а я пролистал чуть ниже и скачал оттуда, то никогда бы и не узнал о том, что она запаролена.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение
А у Автора спросили разрешения?
Ну, вообще-то, автор мало того, что не русскоязычный, так ещё и надстройка бесплатная и совсем простым паролем закрыта явно просто от шаловливых ручек, а не по причине от ущемления авторских я.. прав.
Так что в удалении её из поста, имхо, нет необходимости. Тем более, что в принципе нет особого смысла её, запароленную, качать с сайта автора, когда в массе мест в сети она лежит уже открытая. И если бы у меня первой ссылкой в гуглении вылез не сайт автора, а я пролистал чуть ниже и скачал оттуда, то никогда бы и не узнал о том, что она запаролена.

Автор - Alex_ST
Дата добавления - 12.01.2017 в 11:34
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Переместить надстройку непосредственно внуть файла (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!