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

Вход

Регистрация

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

 

= Мир MS Excel/Макрос для всех CheckBox'ов - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос для всех CheckBox'ов (Макросы/Sub)
Макрос для всех CheckBox'ов
rever27 Дата: Воскресенье, 02.08.2015, 23:14 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Имеется n-нное кол-во ЧекБоксов, каждый отвечает за видимость Ряда на Графике. Для каждого приходится писать практически одинаковые макросы, где отличается только номер Ряда и номер CheckBox'а.
Как можно объединить эти коды, чтобы не захламлять Модуль?
К сообщению приложен файл: 2661857.xlsm (20.0 Kb)
 
Ответить
СообщениеИмеется n-нное кол-во ЧекБоксов, каждый отвечает за видимость Ряда на Графике. Для каждого приходится писать практически одинаковые макросы, где отличается только номер Ряда и номер CheckBox'а.
Как можно объединить эти коды, чтобы не захламлять Модуль?

Автор - rever27
Дата добавления - 02.08.2015 в 23:14
Gustav Дата: Воскресенье, 02.08.2015, 23:30 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2757
Репутация: 1139 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Как-то так:
[vba]
Код
Sub CheckBoxes1_Click()
     Call commonCheckBox_Click(1, 4)
End Sub
Sub CheckBoxes2_Click()
     Call commonCheckBox_Click(2, 2)
End Sub
Sub CheckBoxes3_Click()
     Call commonCheckBox_Click(3, 3)
End Sub
    
Sub commonCheckBox_Click(ryadNum As Integer, chkNum As Integer)
     Sheets("Диаграмма1").SeriesCollection(ryadNum).Format.Line.Visible = IIf(Sheets("Диаграмма1").CheckBoxes("Check Box " & chkNum).Value = 1, True, False)
End Sub
[/vba]


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Воскресенье, 02.08.2015, 23:35
 
Ответить
СообщениеКак-то так:
[vba]
Код
Sub CheckBoxes1_Click()
     Call commonCheckBox_Click(1, 4)
End Sub
Sub CheckBoxes2_Click()
     Call commonCheckBox_Click(2, 2)
End Sub
Sub CheckBoxes3_Click()
     Call commonCheckBox_Click(3, 3)
End Sub
    
Sub commonCheckBox_Click(ryadNum As Integer, chkNum As Integer)
     Sheets("Диаграмма1").SeriesCollection(ryadNum).Format.Line.Visible = IIf(Sheets("Диаграмма1").CheckBoxes("Check Box " & chkNum).Value = 1, True, False)
End Sub
[/vba]

Автор - Gustav
Дата добавления - 02.08.2015 в 23:30
rever27 Дата: Понедельник, 03.08.2015, 00:08 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Gustav, Спасибо, уже приятнее смотрится.
А можно как нибудь узнать номер(Index) CheckBox, которого нажали? Если бы он был известен, то через For цикл можно было бы подобрать к нему Ряд в одном макросе. Т.е. если номер Бокса 2, то и ряда 2, и т.д.
 
Ответить
СообщениеGustav, Спасибо, уже приятнее смотрится.
А можно как нибудь узнать номер(Index) CheckBox, которого нажали? Если бы он был известен, то через For цикл можно было бы подобрать к нему Ряд в одном макросе. Т.е. если номер Бокса 2, то и ряда 2, и т.д.

Автор - rever27
Дата добавления - 03.08.2015 в 00:08
alex77755 Дата: Понедельник, 03.08.2015, 06:05 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

Объединить можно с помощью класса
К сообщению приложен файл: ___.rar (18.6 Kb)


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
СообщениеОбъединить можно с помощью класса

Автор - alex77755
Дата добавления - 03.08.2015 в 06:05
rever27 Дата: Понедельник, 03.08.2015, 07:35 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
alex77755, такой код для меня сложноват пока )
 
Ответить
Сообщениеalex77755, такой код для меня сложноват пока )

Автор - rever27
Дата добавления - 03.08.2015 в 07:35
SPYhelP Дата: Четверг, 06.08.2015, 15:28 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Помогите. Есть таблица. Столбик статус с CheckBox'ами, при изменении CheckBox (вкл/выкл) изменяется надпись "Блокирован", "Работает" нужно что бы, после того как я поставлю галочку CheckBox в столбике "Дата блокировки" устанавливалась текущая дата (статическая), а после того как я уберу галочку CheckBox то ячейка в столбике "Дата блокировки" была пустой. Заранее спасибо
[moder]Создавайте свою тему.
Эта закрыта
К сообщению приложен файл: ___-.xlsx (28.1 Kb)


Сообщение отредактировал _Boroda_ - Четверг, 06.08.2015, 18:26
 
Ответить
СообщениеПомогите. Есть таблица. Столбик статус с CheckBox'ами, при изменении CheckBox (вкл/выкл) изменяется надпись "Блокирован", "Работает" нужно что бы, после того как я поставлю галочку CheckBox в столбике "Дата блокировки" устанавливалась текущая дата (статическая), а после того как я уберу галочку CheckBox то ячейка в столбике "Дата блокировки" была пустой. Заранее спасибо
[moder]Создавайте свою тему.
Эта закрыта

Автор - SPYhelP
Дата добавления - 06.08.2015 в 15:28
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос для всех CheckBox'ов (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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