Найти в Дзене

📌 Элемент управления ComboBox на пользовательской форме. Как создать зависимый выпадающий список. Пример решения

Оглавление

Всем привет! 👋

В продолжение темы заполнения элементов управления на пользовательской форме предлагаем рассмотреть решение для создания зависимых выпадающих списков.

Не забудьте поблагодарить автора лайком и оставить комментарий 💕.

Элемент управления ComboBox на пользовательской форме. Как создать зависимый выпадающий список. Пример решения
Элемент управления ComboBox на пользовательской форме. Как создать зависимый выпадающий список. Пример решения

📢 Скачать исходник с примером кода вы можете в конце статьи 🔽

-3

Напомним, что процедура размещения ComboBox на пользовательской форме была подробно рассмотрена обзоре:

В том случае, если на форме расположено более одного ComboBox и требуется установить связь между (в зависимости от размещения исходной информации) может быть применим один из рассмотренных ниже способа.

▶️ Способ 1. Информация зависимых ComboBox находится в одном столбце

Для целей данного примера рассмотрим следующий источник данных:

-4

Для отображения информации подготовим следующую форму:

-5

🔘 Для отображения выпадающего списка категории товара применим макрос:

-6

Данный макрос добавит каждое непустое значение из ячеек первой строки в ComboBox1:

-7

🔘 Чтобы "связать" два ComboBox применим событие ComboBox1_Change:

Событие ComboBox1_Change
Событие ComboBox1_Change

➡️ Данный макрос будет искать столбец, соответствующий выбранному значению из ComboBox1, и затем заполнять ComboBox2 данными из этого столбца, начиная со второй строки и до последней заполненной ячейки:

-9

▶️ Способ 2. Информация зависимых ComboBox находится в разных столбцах

Для целей данного примера рассмотрим следующий источник данных:

-10

Для отображения информации подготовим следующую форму:

-11

🔘 Чтобы добавить выпадающий список для категории товара применим макрос:

-12

Данный макрос заполняет выпадающий список элемента управления ComboBox1 уникальными значениями из столбца B, начиная с ячейки B2 и до последней заполненной ячейки в столбце. При этом дубликаты и пустые ячейки игнорируются.

➡️ Таким образом, пользователю предоставляется список выбора, который включает только уникальные значения из указанного диапазона.

-13

🔘 Чтобы отобразить список в ComboBox2 на основе выбранного значения из ComboBox1 применим макрос:

Данный макрос предоставляет удобный способ выбора взаимосвязанных данных в двух выпадающих списках на пользовательской форме.
Данный макрос предоставляет удобный способ выбора взаимосвязанных данных в двух выпадающих списках на пользовательской форме.

➡️ Таким образом для выбранного значения в ComboBox2 будет сформирован соответствующий зависимый выпадающий список:

-15

🔘 Чтобы отобразить соответствующую стоимость товара применим событие ComboBox2_Change:

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

Когда пользователь выбирает значение в ComboBox2, код ищет выбранное значение в столбце С на указанном листе.

➡️ Если такое значение найдено, то соответствующее значение из столбца D записывается в TextBox1 на форме. Это позволяет отобразить информацию, связанную с выбранным значением, в текстовом поле TextBox1:

-17

🔔 Для очистки содержимого TextBox при смене категории товара правильным способом будет использование TextBox1.Value = "".

Данную строку кода следует добавить к событию ComboBox1_Change:

Событие ComboBox1_Change
Событие ComboBox1_Change

➡️ Теперь, при смене категории товара поле TextBox будет очищено:

-19

В заключение отменим, что элемент управления ComboBox в зависимости от настроек позволяет не только выбирать значения из списка, но и вводить новые значения и изменять существующие.

Но, о том, как реализовать данную возможность поговорим в следующих обзорах 😉.

-20
Наша команда очень заинтересована в создании качественного и полезного контента. Поэтому, если Вам понравился этот урок, не забудьте поблагодарить автора лайком 👍. Если у Вас есть вопросы или своё решение, не стесняйтесь оставить комментарий 💬. Нужно решение для другой проблемы? Пожалуйста, напишите свой вопрос в комментариях 💬, и мы обязательно рассмотрим его в ближайшей теме обзора. Мы ценим Вашу обратную связь 💝, так как это помогает нам оценить, насколько данный материал был полезен для Вас
Наша команда очень заинтересована в создании качественного и полезного контента. Поэтому, если Вам понравился этот урок, не забудьте поблагодарить автора лайком 👍. Если у Вас есть вопросы или своё решение, не стесняйтесь оставить комментарий 💬. Нужно решение для другой проблемы? Пожалуйста, напишите свой вопрос в комментариях 💬, и мы обязательно рассмотрим его в ближайшей теме обзора. Мы ценим Вашу обратную связь 💝, так как это помогает нам оценить, насколько данный материал был полезен для Вас

📍 Рекомендуемые статьи 🔽

СКАЧАТЬ ПРИМЕР