Найти в Дзене

📌 Как в Excel динамически отображать отфильтрованные данные во время ввода (Пример решения)

Оглавление

Ребята, всем привет! 👋

Продолжаем изучать VBA Excel. В одном из уроков мы уже рассматривали пример решения поиска значения в реальном времени с использованием ActiveX ListBox.

В продолжение темы сегодня рассмотрим еще один способ как динамически отображать отфильтрованные данные во время ввода.

✍️ Если вы только начинаете осваивать VBA Excel мы уверены, каждый может найти для себя что-то новое!

✨ А прежде, чем мы начнем 📣 напомню, теперь у нас на канале есть удобный рубрикатор 👉 Быстрый поиск решения. Путеводитель по Excel, а все видео 📽 предыдущих уроков доступны и на YouTube.

Как в Excel динамически отображать отфильтрованные данные во время ввода
Как в Excel динамически отображать отфильтрованные данные во время ввода

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

-2

Пример задачи:

Пусть мы имеем некоторую базу данных сотрудников:

-3

Наша задача: создать поле поиска "фильтровать по мере ввода" и реализовать поиск ФИО сотрудника (ов).

Реализовать задуманное можно с помощью простого кода VBA:

-4

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

Итак, рассмотрим решение пошагово.

⏩ ШАГ 1. Преобразование данных в таблицу Excel

🔔 Напомню, что в Excel есть большая разница между таблицей и диапазоном данных.

Ранее мы уже рассматривали как правильно создать таблицу в Excel

А потому первым шагом является преобразование данных в таблицу Excel.

Хотя вы можете использовать этот код без преобразования данных в таблицу Excel, это будет проще, когда данные находятся в таблице, поскольку на них становится легче ссылаться в коде VBA.

🔔 Обратите внимание: В рассматриваемом примере имя таблицы "Таблица1":

-5

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

⏩ ШАГ 2. Добавление текстового поля на рабочий лист

Для отображения результата поиска в данном примере используется элемент управления ActiveX TextBox.

Чтобы добавить элемент управления ActiveX TextBox следует воспользоваться вкладкой Разработчик и режимом конструктора:

-6
  • Перейдите на вкладку Разработчик.
  • В группе управления нажмите "Вставить".
  • Щелкните значок текстового поля в элементах управления ActiveX
-7

Поместите курсор в любом месте листа, щелкните и перетащите. При этом на листе будет вставлено текстовое поле:

-8
Вы можете разместить это текстовое поле где угодно, а также изменить его размер.

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

⏩ ШАГ 3. Подключить TextBox к ячейке

Для того, чтобы подключить наш TextBox к определенной ячейке выполним следующее:

  • Кликнув по элементу управления правой кнопкой мыши откроем опцию "Свойства":
-9
  • В окне свойств перейдите к опции Связанной ячейки (LinkedCell) - это ячейка, которую мы подключаем к текстовому полю, и введите нужную ячейку (в нашем примере это С1):
-10

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

⏩ ШАГ 4. ПИШЕМ КОД

Кликнув по элементу управления правой кнопкой мыши откроем опцию "Посмотреть код":

-11

Откроется редактор VB.

В окне кода добавляем приведенный выше код VBA:

-12

Теперь редактор VB можно закрыть и перейти к тестированию результатов.

🔔 ВАЖНО! Добавив код не забываем отключить режим конструктора

⏩ ШАГ 5. ТЕСТИРУЕМ РЕЗУЛЬТАТ

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

Для этого введем в поле поиска вводим значение для поиска:

-13

✔️ Получаем результат:

-14

🔔 Обратите внимание!

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

А на этом сегодня все. 👏 Теперь вы знаете как динамически отображать отфильтрованные данные во время ввода. Я надеюсь, что вы нашли этот урок полезным.

Продолжение следует...

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

Понравился урок!? не забываем оставлять комментарий 📝Нам очень важна Ваша обратная связь 💝

И конечно же, за лайк 👍 благодарочка 💖 и респект 🤝 каждому!

➡️ СКАЧАТЬ ПРИМЕР ФАЙЛА

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