Найти тему

📌 VBA Excel: Создаем выпадающий список для отображения связанного значения (пример решения)

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

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

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

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

Например, рассмотренное сегодня решение позволит автоматически отображать связанные значения при выборе критерия из списка.

➡️ Данный подход будет полезен и актуален при организации поисковых запросов и справочников 😉.

Для удобства поиска нужного материала у нас на канале есть удобный рубрикатор, а все видео предыдущих уроков также доступны на youtube (ссылка внизу поста и в описании канала)
Для удобства поиска нужного материала у нас на канале есть удобный рубрикатор, а все видео предыдущих уроков также доступны на youtube (ссылка внизу поста и в описании канала)
Создаем выпадающий список для отображения связанного значения (пример решения)
Создаем выпадающий список для отображения связанного значения (пример решения)

📢 Файл с примером размещен в конце статьи 🔽

Представленное решение позволит автоматически отображать связанные значения при выборе критерия из списка
Представленное решение позволит автоматически отображать связанные значения при выборе критерия из списка

▶️ Пример исходных данных

  • Создаем справочник:
Пример исходных данных
Пример исходных данных
  • Определяем именованные диапазоны
Задаем именованные диапазоны
Задаем именованные диапазоны
  • Определяем целевую ячейку для которой устанавливаем тип данных список:
Создаем выпадающий список
Создаем выпадающий список

▶️ Постановка задачи

- при выборе критерия из выпадающего списка отображать соответствующее ему связанное значение в ячейке В2:

Постановка задачи: как создать выпадающий список для отображения связанного значения
Постановка задачи: как создать выпадающий список для отображения связанного значения

▶️ Вариант решения №1

В данном варианте предполагается замена содержимого ячейки B2 на связанное значение, перезаписывая вводимые пользователем данные.

🔘 Пример макроса

Выпадающий список для отображения связанного значения (вариант решения 1)
Выпадающий список для отображения связанного значения (вариант решения 1)

⚙️ Краткое описание

  • Переменная Target представляет изменяемую ячейку.
  • selectedNa = Target.Value: в этой строке переменной присваивается значение изменяемой ячейки
  • If Target = Range("B2") Then: проверяет, является ли измененная ячейка B2.
  • selectedNum = Application.VLookup(selectedNa, Лист2.Range("Справочник"), 2, False): в этой строке используется функция VLookup (ВПР) для поиска значения в именованном диапазоне "Справочник". Параметр False означает, что ищем точное соответствие.
  • If Not IsError(selectedNum) Then: перед обновлением значения B2 результатом ВПР проверяется, не привела ли функция ВПР к ошибке (например, если совпадение не найдено).
  • Target.Value = selectedNum: если ошибки нет, значение B2 обновляется до selectedNum, значения, полученного при ВПР.

📝 Примечание автора: процедура должна быть помещена в модуль листа.

Пример решения (вариант 1)
Пример решения (вариант 1)

▶️ Вариант решения №2

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

🔘 Взяв за основу рассмотренный выше код внесем небольшую корректировку:

Выпадающий список для отображения связанного значения и критерия (вариант решения 2)
Выпадающий список для отображения связанного значения и критерия (вариант решения 2)

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

Пример решения (вариант 2)
Пример решения (вариант 2)

📝 Примечание автора:

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

Например, можно добавить дополнительные проверки на диапазон ячеек или изменить действия при определенных событиях.

Также возможны дополнительные функциональные улучшения, такие как добавление обработки ошибок или дополнительных действий после обновления значений.

Подписывайтесь на канал, чтобы не пропустить новые уроки и полезные фишки Excel
Подписывайтесь на канал, чтобы не пропустить новые уроки и полезные фишки Excel

🔵 Ознакомиться с другими приемами VBA Excel вы можете в наших предыдущих обзорах 🔽

🙌 Оставайся с нами на связи и узнавай больше о других методах и приемах работы в Excel:

Следите за новостями, чтобы узнать больше о VBA и Excel, в частности
Следите за новостями, чтобы узнать больше о VBA и Excel, в частности

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