Страницы: 1
RSS
Скрыть/показать ToggleButton в зависимости от значения ячейки
 
Всем привет!

Помогите исправить ошибку.
Есть ComboBox1 и 4 кнопки ToggleButton

Нужно сделать:
1. Чтобы при изменении ComboBox1 все ToggleButton отжимались. (это работает)
2. При выборе значений L, S, P  в ComboBox1 ToggleButton1 и 2 (+ и М) скрывались. (а это НЕ работает)
Привязанная ячейка к ComboBox1 - А2 на листе Data.
Код
Private Sub ComboBox1_Change()
 
   ToggleButton1.Value = False
   ToggleButton2.Value = False
   ToggleButton3.Value = False
   ToggleButton4.Value = False
 
If Data.Range("A2") = "L" Or Data.Range("A2") = "S" Or Data.Range("A2") = "P" Then
   ToggleButton1.Visible = False
   ToggleButton2.Visible = False
Else
   ToggleButton1.Visible = True
   ToggleButton2.Visible = True
End If
 
End Sub
 
пишете ЛистБокс связан с А2, а он связан с В2
к листу обращаетесь не корректно
используйте этот
Код
Private Sub ComboBox1_Change()
   ToggleButton1.Value = False
   ToggleButton2.Value = False
   ToggleButton3.Value = False
   ToggleButton4.Value = False
   ToggleButton1.Visible = InStr("LSP", Worksheets("Data").[b2]) = 0
   ToggleButton2.Visible = ToggleButton1.Visible
End Sub
Изменено: Ігор Гончаренко - 15.05.2021 16:08:07
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Владимир Петров написал:
Привязанная ячейка к ComboBox1 - А2 на листе Data.
А по факту привязано к В2
И указывайте имя листа.
Код
If Sheets("Data").Range("B2") = "L" Or Sheets("Data").Range("B2") = "S" Or Sheets("Data").Range("B2") = "P" Then
 
кросс
По вопросам из тем форума, личку не читаю.
 
Огромное спасибо!
Вы очень помогли.
Я правда немного ошибся, + и М должны оставаться, а скрываться RL и ВТ.
Это я исправил, ибо это было несложно.
Но вот еще маленький нюанс:
Если из списка выбрать пробел, то все 4 кнопки должны быть видны, а видно только 2.
Судя по коду InStr("LSP" скрытие должно происходить при буквах LSP.
Почему оно происходит и при пробеле?
Можно это как-то исправить?
 
нет там пробела
Код
Private Sub ComboBox1_Change()
  ToggleButton1.Value = False
  ToggleButton2.Value = False
  ToggleButton3.Value = False
  ToggleButton4.Value = False
  If Worksheets("Data").[b2] = "" Then Exit Sub
  ToggleButton1.Visible = InStr("LSP", Worksheets("Data").[b2]) = 0
  ToggleButton2.Visible = ToggleButton1.Visible
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Страницы: 1
Наверх