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

Вход

Регистрация

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

 

= Мир MS Excel/CheckBox с листом и операции - Мир MS Excel

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

Excel 2010
Я не могу сообразить и настроить checkbox. Мне нужна такая функция, что на checkbox стоит галочка, значит отображает лист 1, если я уберу галочку, то лист 1 скрыт. И еще функция "Операция по выбору галочку на checkbox + кнопка выполнить". По выбору галочки, операция должна выполнить. Что-то мне с chekbox не понятно.
К сообщению приложен файл: checkbox.xlsm (22.6 Kb)


Сообщение отредактировал vegarus - Понедельник, 20.07.2015, 19:02
 
Ответить
СообщениеЯ не могу сообразить и настроить checkbox. Мне нужна такая функция, что на checkbox стоит галочка, значит отображает лист 1, если я уберу галочку, то лист 1 скрыт. И еще функция "Операция по выбору галочку на checkbox + кнопка выполнить". По выбору галочки, операция должна выполнить. Что-то мне с chekbox не понятно.

Автор - vegarus
Дата добавления - 20.07.2015 в 18:58
nilem Дата: Понедельник, 20.07.2015, 19:57 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
например, вот так. В модуль листа
[vba]
Код
Sub ttt()
Dim i&
For i = 16 To 18
     Sheets(Me.CheckBoxes("Check Box " & i).Caption).Visible = IIf(Me.CheckBoxes("Check Box " & i).Value = 1, True, False)
Next
End Sub
[/vba]
Только подписи (Caption) чекбоксов должны точно соответствовать именам листов.


Яндекс.Деньги 4100159601573
 
Ответить
Сообщениенапример, вот так. В модуль листа
[vba]
Код
Sub ttt()
Dim i&
For i = 16 To 18
     Sheets(Me.CheckBoxes("Check Box " & i).Caption).Visible = IIf(Me.CheckBoxes("Check Box " & i).Value = 1, True, False)
Next
End Sub
[/vba]
Только подписи (Caption) чекбоксов должны точно соответствовать именам листов.

Автор - nilem
Дата добавления - 20.07.2015 в 19:57
KSV Дата: Понедельник, 20.07.2015, 20:35 | Сообщение № 3
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Готовое решение с проверкой возможных ошибок
К сообщению приложен файл: 2780876.xlsm (29.1 Kb)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
СообщениеГотовое решение с проверкой возможных ошибок

Автор - KSV
Дата добавления - 20.07.2015 в 20:35
vegarus Дата: Понедельник, 20.07.2015, 23:13 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
KSV, Отлично) Спасибо yes
 
Ответить
СообщениеKSV, Отлично) Спасибо yes

Автор - vegarus
Дата добавления - 20.07.2015 в 23:13
vegarus Дата: Вторник, 21.07.2015, 02:13 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Еще проблема, у меня в книге на листе название другие, у меня ошибка является.
А Чекбокс находится на главной с названием "Главная"
Лист " 7 День 2; 1 День; 2 День, 3 День; 4 День; 5 День; 6 День; 7 День 2 "

[vba]
Код

Sub Check()
      Dim SheetName As String
      SheetName = 7 День.Shapes(Application.Caller).TextFrame.Characters.Caption
      If SheetName = ГЛАВНАЯ.Name Then MsgBox "Если скрыть этот лист, то скроются и все чекбоксы!": ГЛАВНАЯ.Shapes(Application.Caller).ControlFormat.Value = xlOn: Exit Sub
      On Error Resume Next
      ThisWorkbook.Worksheets(SheetName).Visible = 7 День.Shapes(Application.Caller).ControlFormat.Value = xlOn
End Sub
[/vba]


Сообщение отредактировал vegarus - Вторник, 21.07.2015, 02:22
 
Ответить
СообщениеЕще проблема, у меня в книге на листе название другие, у меня ошибка является.
А Чекбокс находится на главной с названием "Главная"
Лист " 7 День 2; 1 День; 2 День, 3 День; 4 День; 5 День; 6 День; 7 День 2 "

[vba]
Код

Sub Check()
      Dim SheetName As String
      SheetName = 7 День.Shapes(Application.Caller).TextFrame.Characters.Caption
      If SheetName = ГЛАВНАЯ.Name Then MsgBox "Если скрыть этот лист, то скроются и все чекбоксы!": ГЛАВНАЯ.Shapes(Application.Caller).ControlFormat.Value = xlOn: Exit Sub
      On Error Resume Next
      ThisWorkbook.Worksheets(SheetName).Visible = 7 День.Shapes(Application.Caller).ControlFormat.Value = xlOn
End Sub
[/vba]

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

Excel 2013
В моих процедурах обращение происходит по внутренним именам листов, а если хотите обращаться к ним по тем именам, которые написаны на ярлыках, то нужно так:[vba]
Код
Sub Check()
     Dim SheetName As String
     SheetName = ThisWorkbook.Worksheets("7 День").Shapes(Application.Caller).TextFrame.Characters.Caption
     If SheetName = "ГЛАВНАЯ" Then MsgBox "Если скрыть этот лист, то скроются и все чекбоксы!": ThisWorkbook.Worksheets("ГЛАВНАЯ").Shapes(Application.Caller).ControlFormat.Value = xlOn: Exit Sub
     On Error Resume Next
     ThisWorkbook.Worksheets(SheetName).Visible = ThisWorkbook.Worksheets("7 День").Shapes(Application.Caller).ControlFormat.Value = xlOn
End Sub
[/vba]


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
СообщениеВ моих процедурах обращение происходит по внутренним именам листов, а если хотите обращаться к ним по тем именам, которые написаны на ярлыках, то нужно так:[vba]
Код
Sub Check()
     Dim SheetName As String
     SheetName = ThisWorkbook.Worksheets("7 День").Shapes(Application.Caller).TextFrame.Characters.Caption
     If SheetName = "ГЛАВНАЯ" Then MsgBox "Если скрыть этот лист, то скроются и все чекбоксы!": ThisWorkbook.Worksheets("ГЛАВНАЯ").Shapes(Application.Caller).ControlFormat.Value = xlOn: Exit Sub
     On Error Resume Next
     ThisWorkbook.Worksheets(SheetName).Visible = ThisWorkbook.Worksheets("7 День").Shapes(Application.Caller).ControlFormat.Value = xlOn
End Sub
[/vba]

Автор - KSV
Дата добавления - 21.07.2015 в 04:11
vegarus Дата: Пятница, 24.07.2015, 02:09 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Простите, вопрос еще не исчерпан. KSV, как ты сказал, я сделал, но все равно появился ошибку, что компонент с именем не найден
SheetName = ThisWorkbook.Worksheets("7 День").Shapes(Application.Caller).TextFrame.Characters.Caption

Прикрепил файл здесь
К сообщению приложен файл: CheckBox.xlsm (31.4 Kb)


Сообщение отредактировал vegarus - Пятница, 24.07.2015, 02:11
 
Ответить
СообщениеПростите, вопрос еще не исчерпан. KSV, как ты сказал, я сделал, но все равно появился ошибку, что компонент с именем не найден
SheetName = ThisWorkbook.Worksheets("7 День").Shapes(Application.Caller).TextFrame.Characters.Caption

Прикрепил файл здесь

Автор - vegarus
Дата добавления - 24.07.2015 в 02:09
Manyasha Дата: Пятница, 24.07.2015, 07:42 | Сообщение № 8
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
vegarus, здравствуйте. А почему Вы ищите флажки на листе 7?
Они ведь у Вас на главной расположены, замените в коде название листа:[vba]
Код
Sub Check()
     Dim SheetName As String
     SheetName = ThisWorkbook.Worksheets("ГЛАВНАЯ").Shapes(Application.Caller).TextFrame.Characters.Caption
     If SheetName = "ГЛАВНАЯ" Then MsgBox "Если скрыть этот лист, то скроются и все чекбоксы!": ThisWorkbook.Worksheets("ГЛАВНАЯ").Shapes(Application.Caller).ControlFormat.Value = xlOn: Exit Sub
     On Error Resume Next
     ThisWorkbook.Worksheets(SheetName).Visible = ThisWorkbook.Worksheets("ГЛАВНАЯ").Shapes(Application.Caller).ControlFormat.Value = xlOn
End Sub
[/vba]


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеvegarus, здравствуйте. А почему Вы ищите флажки на листе 7?
Они ведь у Вас на главной расположены, замените в коде название листа:[vba]
Код
Sub Check()
     Dim SheetName As String
     SheetName = ThisWorkbook.Worksheets("ГЛАВНАЯ").Shapes(Application.Caller).TextFrame.Characters.Caption
     If SheetName = "ГЛАВНАЯ" Then MsgBox "Если скрыть этот лист, то скроются и все чекбоксы!": ThisWorkbook.Worksheets("ГЛАВНАЯ").Shapes(Application.Caller).ControlFormat.Value = xlOn: Exit Sub
     On Error Resume Next
     ThisWorkbook.Worksheets(SheetName).Visible = ThisWorkbook.Worksheets("ГЛАВНАЯ").Shapes(Application.Caller).ControlFormat.Value = xlOn
End Sub
[/vba]

Автор - Manyasha
Дата добавления - 24.07.2015 в 07:42
RAN Дата: Пятница, 24.07.2015, 12:05 | Сообщение № 9
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
А почему Вы ищите флажки на листе 7?

А там светло. :D


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
А почему Вы ищите флажки на листе 7?

А там светло. :D

Автор - RAN
Дата добавления - 24.07.2015 в 12:05
vegarus Дата: Пятница, 24.07.2015, 13:54 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Все, исправил, большое спасибо. Вопрос исчерпан ;)
 
Ответить
СообщениеВсе, исправил, большое спасибо. Вопрос исчерпан ;)

Автор - vegarus
Дата добавления - 24.07.2015 в 13:54
vegarus Дата: Вторник, 16.02.2016, 23:39 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте! У меня к Вам помощь сделать маленький макрос. Мне нужен макрос, так что галочки выбираются несколько и не все. Галочки стоят и будут делать операцию. Если галочки не стоят и пропускает операцию.
[moder]А причем здесь скрытие листов из исходного вопроса? Нужна новая тема.
И пример сделайте поподробнее, что за "Операция 1"? Какие действия должен выполнять макрос?[/moder]
К сообщению приложен файл: Check_and-Opera.xlsm (28.1 Kb)


Сообщение отредактировал Manyasha - Среда, 17.02.2016, 10:54
 
Ответить
СообщениеЗдравствуйте! У меня к Вам помощь сделать маленький макрос. Мне нужен макрос, так что галочки выбираются несколько и не все. Галочки стоят и будут делать операцию. Если галочки не стоят и пропускает операцию.
[moder]А причем здесь скрытие листов из исходного вопроса? Нужна новая тема.
И пример сделайте поподробнее, что за "Операция 1"? Какие действия должен выполнять макрос?[/moder]

Автор - vegarus
Дата добавления - 16.02.2016 в 23:39
Мир MS Excel » Вопросы и решения » Вопросы по VBA » CheckBox с листом и операции (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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