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

Вход

Регистрация

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

 

= Мир MS Excel/Связанные комбобоксы - Мир MS Excel

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

Excel 2016
Здравствуйте. Помогите разобраться с комбобоксами.

На листе есть несколько основных списков (элементы управления) и еще один дополнительный. Набор значений (полей) у всех одинаковый.
Я бы хотел их связать так, чтобы при выборе значения в допсписке это значение включалось в основных списках.

Прилагаю файл (там будет понятнее показано, что мне нужно).

Вообще я видел одно решение похожей задачи с созданием комбобоксов, но в моем случае обращаться нужно уже к имеющимся комбобоксам, и как-то у меня самого ничего не получилось.
К сообщению приложен файл: Lists.xlsm (14.1 Kb)


Сообщение отредактировал Revengencer - Понедельник, 21.09.2015, 20:49
 
Ответить
СообщениеЗдравствуйте. Помогите разобраться с комбобоксами.

На листе есть несколько основных списков (элементы управления) и еще один дополнительный. Набор значений (полей) у всех одинаковый.
Я бы хотел их связать так, чтобы при выборе значения в допсписке это значение включалось в основных списках.

Прилагаю файл (там будет понятнее показано, что мне нужно).

Вообще я видел одно решение похожей задачи с созданием комбобоксов, но в моем случае обращаться нужно уже к имеющимся комбобоксам, и как-то у меня самого ничего не получилось.

Автор - Revengencer
Дата добавления - 21.09.2015 в 20:46
buchlotnik Дата: Понедельник, 21.09.2015, 22:15 | Сообщение № 2
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
заменил элементы формы на Activex получилось так: [vba]
Код
Private Sub ComboBox1_Change()
     If ComboBox1 <> ComboBox2 And ComboBox1 <> ComboBox3 Then ComboBox4 = "---"
End Sub

Private Sub ComboBox2_Change()
     If ComboBox2 <> ComboBox1 And ComboBox2 <> ComboBox3 Then ComboBox4 = "---"
End Sub

Private Sub ComboBox3_Change()
     If ComboBox3 <> ComboBox1 And ComboBox3 <> ComboBox2 Then ComboBox4 = "---"
End Sub

Private Sub ComboBox4_Change()
    If ComboBox4 <> "---" Then
     ComboBox1 = ComboBox4
     ComboBox2 = ComboBox1
     ComboBox3 = ComboBox1
     ComboBox4 = ComboBox1
     End If
End Sub
[/vba]
К сообщению приложен файл: Lists-2-.xlsm (28.9 Kb)


Сообщение отредактировал buchlotnik - Понедельник, 21.09.2015, 22:39
 
Ответить
Сообщениезаменил элементы формы на Activex получилось так: [vba]
Код
Private Sub ComboBox1_Change()
     If ComboBox1 <> ComboBox2 And ComboBox1 <> ComboBox3 Then ComboBox4 = "---"
End Sub

Private Sub ComboBox2_Change()
     If ComboBox2 <> ComboBox1 And ComboBox2 <> ComboBox3 Then ComboBox4 = "---"
End Sub

Private Sub ComboBox3_Change()
     If ComboBox3 <> ComboBox1 And ComboBox3 <> ComboBox2 Then ComboBox4 = "---"
End Sub

Private Sub ComboBox4_Change()
    If ComboBox4 <> "---" Then
     ComboBox1 = ComboBox4
     ComboBox2 = ComboBox1
     ComboBox3 = ComboBox1
     ComboBox4 = ComboBox1
     End If
End Sub
[/vba]

Автор - buchlotnik
Дата добавления - 21.09.2015 в 22:15
Revengencer Дата: Понедельник, 21.09.2015, 22:48 | Сообщение № 3
Группа: Проверенные
Ранг: Новичок
Сообщений: 34
Репутация: 13 ±
Замечаний: 0% ±

Excel 2016
buchlotnik, спасибо.
А с элементами управления такое в принципе можно делать?
 
Ответить
Сообщениеbuchlotnik, спасибо.
А с элементами управления такое в принципе можно делать?

Автор - Revengencer
Дата добавления - 21.09.2015 в 22:48
KSV Дата: Вторник, 22.09.2015, 14:33 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
так? [vba]
Код
Private Sub List_Change()
     If Range(Application.Caller) <> [D9] Then [D9] = 5
End Sub

Private Sub ListCom_Change()
     If [D9] <> 5 Then
         [C4] = [D9]
         [C5] = [D9]
         [C6] = [D9]
     End If
End Sub
[/vba]
К сообщению приложен файл: Lists_.xlsm (20.8 Kb)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333
 
Ответить
Сообщениетак? [vba]
Код
Private Sub List_Change()
     If Range(Application.Caller) <> [D9] Then [D9] = 5
End Sub

Private Sub ListCom_Change()
     If [D9] <> 5 Then
         [C4] = [D9]
         [C5] = [D9]
         [C6] = [D9]
     End If
End Sub
[/vba]

Автор - KSV
Дата добавления - 22.09.2015 в 14:33
Revengencer Дата: Вторник, 22.09.2015, 19:41 | Сообщение № 5
Группа: Проверенные
Ранг: Новичок
Сообщений: 34
Репутация: 13 ±
Замечаний: 0% ±

Excel 2016
KSV,
супер. Спасибо.
Списки из элементов управления формы покрасивее, чем в элементах ActiveX, поэтому и макрос под них хотелся)


Сообщение отредактировал Revengencer - Вторник, 22.09.2015, 19:44
 
Ответить
СообщениеKSV,
супер. Спасибо.
Списки из элементов управления формы покрасивее, чем в элементах ActiveX, поэтому и макрос под них хотелся)

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

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