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

Вход

Регистрация

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

 

= Мир MS Excel/Прикрутить к форме макросы - Мир MS Excel

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

Excel 2019, Word 2019
Доброе время суток всем.
Помогите
1 создать макрос для запуска формы и чтобы он заменил все макросы листа
2 если есть, что попроще и солидней для очистки всех Колонтитулов на листе, тогда сделать макрос вместо моего
К сообщению приложен файл: 119.rar (74.7 Kb)


Сообщение отредактировал Otter - Вторник, 31.03.2015, 22:20
 
Ответить
СообщениеДоброе время суток всем.
Помогите
1 создать макрос для запуска формы и чтобы он заменил все макросы листа
2 если есть, что попроще и солидней для очистки всех Колонтитулов на листе, тогда сделать макрос вместо моего

Автор - Otter
Дата добавления - 31.03.2015 в 18:02
KSV Дата: Вторник, 31.03.2015, 18:13 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Михаил, посмотри мой последний файл, в ответе на твой вопрос: Из двух макросов сделать один, в нем все есть.
Чтобы макросы не отображались в окне списка макросов - поставь Private перед Sub, но тогда эти макросы будут НЕ видны и из других модулей!
а код можешь написать непосредственно в событиях твоих контролов...


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333


Сообщение отредактировал KSV - Вторник, 31.03.2015, 18:16
 
Ответить
СообщениеМихаил, посмотри мой последний файл, в ответе на твой вопрос: Из двух макросов сделать один, в нем все есть.
Чтобы макросы не отображались в окне списка макросов - поставь Private перед Sub, но тогда эти макросы будут НЕ видны и из других модулей!
а код можешь написать непосредственно в событиях твоих контролов...

Автор - KSV
Дата добавления - 31.03.2015 в 18:13
doober Дата: Вторник, 31.03.2015, 18:16 | Сообщение № 3
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
3 если есть, что попроще и солидней

Есть.На примере первого флажка.
Есть смысл переименовать контролы на форме для лучшей в них ориентации.
[vba]
Код
Private Sub CheckBox1_Click()
  ActiveWindow.DisplayGridlines = CheckBox1.Value
End Sub
[/vba]


 
Ответить
Сообщение
3 если есть, что попроще и солидней

Есть.На примере первого флажка.
Есть смысл переименовать контролы на форме для лучшей в них ориентации.
[vba]
Код
Private Sub CheckBox1_Click()
  ActiveWindow.DisplayGridlines = CheckBox1.Value
End Sub
[/vba]

Автор - doober
Дата добавления - 31.03.2015 в 18:16
Otter Дата: Вторник, 31.03.2015, 18:27 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
но тогда эти макросы будут НЕ видны и из других модулей!

Дык а зачем им быть видными если все работает. Главное чтоб запускающий макрос был виден и все. Или я чего то опять не понял?
а код можешь написать непосредственно в событиях твоих контролов...
Здесь примерчик нужен, а то не понял
а "Защита листа" и "Скрыть строки с 0" - можно сделать по одному чекбоксу, вместо двух опшинов на каждый...
Посмотрю на примере как реализовать это. Спасибо за советы.


Сообщение отредактировал Otter - Вторник, 31.03.2015, 18:32
 
Ответить
Сообщение
но тогда эти макросы будут НЕ видны и из других модулей!

Дык а зачем им быть видными если все работает. Главное чтоб запускающий макрос был виден и все. Или я чего то опять не понял?
а код можешь написать непосредственно в событиях твоих контролов...
Здесь примерчик нужен, а то не понял
а "Защита листа" и "Скрыть строки с 0" - можно сделать по одному чекбоксу, вместо двух опшинов на каждый...
Посмотрю на примере как реализовать это. Спасибо за советы.

Автор - Otter
Дата добавления - 31.03.2015 в 18:27
KSV Дата: Вторник, 31.03.2015, 18:28 | Сообщение № 5
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Otter, и прислушайся к совету:
Есть смысл переименовать контролы на форме для лучшей в них ориентации.

а "Защита листа" и "Скрыть строки с 0" - можно сделать по одному чекбоксу, вместо двух опшинов на каждый...


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
СообщениеOtter, и прислушайся к совету:
Есть смысл переименовать контролы на форме для лучшей в них ориентации.

а "Защита листа" и "Скрыть строки с 0" - можно сделать по одному чекбоксу, вместо двух опшинов на каждый...

Автор - KSV
Дата добавления - 31.03.2015 в 18:28
KSV Дата: Вторник, 31.03.2015, 18:37 | Сообщение № 6
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Или я чего то опять не понял?

я, к сожалению, не экстрасенс, чтобы знать что ты понял, а что нет :)
просто, сразу предупредил, что если (после добавления Private) ты будешь обращаться по имени к своим макросам из других модулей, в т.ч. и из формы, то VBA скажет, что такой функции/процедуры нет, т.к. добавлением ключевого слова Private перед именем функции, ты меняешь ее область видимости на локальную. Поэтому я и написал, что в этом случае, код ты должен писать, непосредственно, в модуле формы, а не вызывать по имени свои макросы, находящиеся в других модулях.


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
Сообщение
Или я чего то опять не понял?

я, к сожалению, не экстрасенс, чтобы знать что ты понял, а что нет :)
просто, сразу предупредил, что если (после добавления Private) ты будешь обращаться по имени к своим макросам из других модулей, в т.ч. и из формы, то VBA скажет, что такой функции/процедуры нет, т.к. добавлением ключевого слова Private перед именем функции, ты меняешь ее область видимости на локальную. Поэтому я и написал, что в этом случае, код ты должен писать, непосредственно, в модуле формы, а не вызывать по имени свои макросы, находящиеся в других модулях.

Автор - KSV
Дата добавления - 31.03.2015 в 18:37
KSV Дата: Вторник, 31.03.2015, 18:42 | Сообщение № 7
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Здесь примерчик нужен, а то не понял

см. скриншот
К сообщению приложен файл: 6477134.png (2.6 Kb)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
Сообщение
Здесь примерчик нужен, а то не понял

см. скриншот

Автор - KSV
Дата добавления - 31.03.2015 в 18:42
Otter Дата: Вторник, 31.03.2015, 18:45 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
Поэтому я и написал, что в этом случае, код ты должен писать, непосредственно, в модуле формы, а не вызывать по имени свои макросы, находящиеся в других модулях.

Тут теоретически понятно но как реализовать на практике ^_^
Да с вашей помощью я сделал свой окончательный вариант здесь Из двух макросов сделать один
а "Защита листа" и "Скрыть строки с 0" - можно сделать по одному чекбоксу, вместо двух опшинов на каждый...
Дык "Скрыть строки с 0" уже реализовано в том виде как есть и я уже выложил свой вариант здесь Из двух макросов сделать один . Про него можно забыть на время. В этой теме он совсем не нужен. Здесь стоит другая задача.
Да я кажется понял о чем вы говорите. Значения "0" на странице это не "Скрыть строки с 0". Здесь смысл в том показывать или нет 0 в ячейках визуально. Можно и так сделать как в приложении (с одной радиокнопкой)

А главная идея этой темы быстро по одному макросу с формой сделать настройки на листе чтобы не бегать по разным панелям делая много кликов.
К сообщению приложен файл: 8711124.jpg (39.6 Kb)


Сообщение отредактировал Otter - Вторник, 31.03.2015, 20:29
 
Ответить
Сообщение
Поэтому я и написал, что в этом случае, код ты должен писать, непосредственно, в модуле формы, а не вызывать по имени свои макросы, находящиеся в других модулях.

Тут теоретически понятно но как реализовать на практике ^_^
Да с вашей помощью я сделал свой окончательный вариант здесь Из двух макросов сделать один
а "Защита листа" и "Скрыть строки с 0" - можно сделать по одному чекбоксу, вместо двух опшинов на каждый...
Дык "Скрыть строки с 0" уже реализовано в том виде как есть и я уже выложил свой вариант здесь Из двух макросов сделать один . Про него можно забыть на время. В этой теме он совсем не нужен. Здесь стоит другая задача.
Да я кажется понял о чем вы говорите. Значения "0" на странице это не "Скрыть строки с 0". Здесь смысл в том показывать или нет 0 в ячейках визуально. Можно и так сделать как в приложении (с одной радиокнопкой)

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

Автор - Otter
Дата добавления - 31.03.2015 в 18:45
KSV Дата: Среда, 01.04.2015, 00:09 | Сообщение № 9
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Тут теоретически понятно но как реализовать на практике

если теоретически понятно, то что мешает реализовать?
doober тебе написал, как надо, на примере одного контрола - для остальных контролов код аналогичный.
здесь же ПОДСКАЗЫВАЮТ, как сделать, а ты ждешь, пока за тебя сделают...
тогда сразу и надо было писать: "не хочу заморачиваться, сделайте мне кто-нибудь"...
только тогда тебе в соседний раздел: Работа/Фриланс

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

[p.s.]ThisWorkbook.Windows(1) я использовал специально, чтобы получить активное окно именно нашей книги, т.к. ActiveWindow это свойство объекта Application и оно просто возвращает объект, указывающий на активное окно, и совсем не факт, что это активное окно принадлежит нашей книге...
К сообщению приложен файл: 2693444.xlsm (26.0 Kb)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333


Сообщение отредактировал KSV - Среда, 01.04.2015, 00:25
 
Ответить
Сообщение
Тут теоретически понятно но как реализовать на практике

если теоретически понятно, то что мешает реализовать?
doober тебе написал, как надо, на примере одного контрола - для остальных контролов код аналогичный.
здесь же ПОДСКАЗЫВАЮТ, как сделать, а ты ждешь, пока за тебя сделают...
тогда сразу и надо было писать: "не хочу заморачиваться, сделайте мне кто-нибудь"...
только тогда тебе в соседний раздел: Работа/Фриланс

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

[p.s.]ThisWorkbook.Windows(1) я использовал специально, чтобы получить активное окно именно нашей книги, т.к. ActiveWindow это свойство объекта Application и оно просто возвращает объект, указывающий на активное окно, и совсем не факт, что это активное окно принадлежит нашей книге...

Автор - KSV
Дата добавления - 01.04.2015 в 00:09
Otter Дата: Среда, 01.04.2015, 15:38 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 174
Репутация: 0 ±
Замечаний: 0% ±

Excel 2019, Word 2019
Цитата
здесь же ПОДСКАЗЫВАЮТ, как сделать
Я понимаю, но если пока ваши советы "птичий язык" для меня.
Цитата
только тогда тебе в соседний раздел: Работа/Фриланс
Я бы сразу туда пошел если бы что серьезное было и финансы от этого поимел. Здесь же бесплатно другим помогают.
Цитата
во вложенном файле полностью реализованная твоя идея, даже больше
Если для вас это было очень сложно простите за напряги.
Преогромная благодарность за труды и Ваше терпение.

Все работает только в текущей книге, поэтому надо скопировать нужные книги и листы в этот файл.
Итак, считаю вопрос полностью решен. Спасибо всем кто участвовал.


Сообщение отредактировал Otter - Среда, 01.04.2015, 23:44
 
Ответить
Сообщение
Цитата
здесь же ПОДСКАЗЫВАЮТ, как сделать
Я понимаю, но если пока ваши советы "птичий язык" для меня.
Цитата
только тогда тебе в соседний раздел: Работа/Фриланс
Я бы сразу туда пошел если бы что серьезное было и финансы от этого поимел. Здесь же бесплатно другим помогают.
Цитата
во вложенном файле полностью реализованная твоя идея, даже больше
Если для вас это было очень сложно простите за напряги.
Преогромная благодарность за труды и Ваше терпение.

Все работает только в текущей книге, поэтому надо скопировать нужные книги и листы в этот файл.
Итак, считаю вопрос полностью решен. Спасибо всем кто участвовал.

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

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