Найти в Дзене

📌 Как внести изменения в выпадающий список. Часть 2: добавляем новое значение в ComboBox

Оглавление

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

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

Как внести изменения в выпадающий список. Часть 2: добавляем новое значение в ComboBox
Как внести изменения в выпадающий список. Часть 2: добавляем новое значение в ComboBox

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

-3

▶️ Цели и задачи

В качестве примера рассмотрим исходные данные предыдущего обзора:

-4

🔶 Представленное решение уже "умеет":

  • формировать выпадающий список;
  • создавать зависимый выпадающий список;
  • выполнять поиск значения (стоимости);
  • удалять неактуальные значения из данных исходной таблицы

🎯 Задача: добавить возможность вносить новые значения в таблицу исходных данных и отображать их в ComboBox.

▶️ Элементы управления

Если задача удалять значения для вас не актуальна, то можете назначить представленный ниже макрос на уже имеющийся элемент управления CommandButton:

Иначе, добавьте еще один:

Элемент управления  CommandButton
Элемент управления CommandButton

▶️ Как добавить новое значение в выпадающий список

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

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

Например, требуется добавить новую категорию и товар:

-6

Для этого применим макрос:

-7

📝 Примечание автора: Если требуется можно добавить очистку ComboBox после внесения данных

➡️ Этот код заполнит строку в источнике данных, используя значения из ComboBox1 и ComboBox2, а также автоматически пронумерует строки в столбце A, основываясь на номере последней строки:

-8

📝 Примечание автора: Данный подход также позволит добавить только новое значение ComboBox2 (товар) для выбранного из выпадающего списка в ComboBox1 значения (категории).

▶️ Дополнения

Напомним, что в рассмотренном примере установлено ограничение ввода на элементе управления TextBox:

Ограничение ввода на элементе управления TextBox: Locked=True
Ограничение ввода на элементе управления TextBox: Locked=True

Чтобы, разрешить ввод вернем свойство Locked=False:

Добавьте описание
Добавьте описание

И добавим в строку кода условие:

-11

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

-12

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

-13

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

-14

По желанию, используя оператор MsgBox можно вывести сообщение пользователю об успешном вводе данных или ошибке:

Например,

Пример MsgBox VBA: как создать сообщения для пользователя
Пример MsgBox VBA: как создать сообщения для пользователя

В этом случае, если TextBox или один из ComboBox будет пуст, пользователь получит сообщение, что введенных данных не достаточно:

-16

Но на этом возможности ComboBox не заканчиваются 😉

⏺ В следующем обзоре обсудим: как найти строку содержащую выбранное значение и его заменить.

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

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

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

Наука
7 млн интересуются