Найти в Дзене
Макрос решает

VBA-формы в Excel: Как создать режим редактирования записей в базе данных

Узнайте, как с помощью VBA реализовать функциональность редактирования данных в пользовательской форме Excel: настройка вкладок, динамический диапазон, списки ID и многое другое. Полный гайд с кодом и пояснениями. Редактирование данных — ключевая функция любой базы. Если раньше наша форма только добавляла записи, теперь пришло время научиться менять уже существующие данные. Это особенно важно, если вы используете Excel как систему учёта: учебные курсы, заказы, проекты, что угодно. Сегодня мы добавим во вкладку формы в Excel второй режим работы — режим редактирования строки. Всё просто, понятно и с реальной практикой. В редакторе формы (UserForm) уже есть элемент MultiPage. В первой вкладке — форма добавления данных. Во второй теперь будет редактирование.
Переименовываем: Копируем элементы из первой вкладки и вставляем во вторую. Все элементы должны получить новые имена — добавим суффикс _R, например: Но ID-поле будет выпадающим списком, чтобы пользователь мог выбрать нужную запись по
Оглавление

Узнайте, как с помощью VBA реализовать функциональность редактирования данных в пользовательской форме Excel: настройка вкладок, динамический диапазон, списки ID и многое другое. Полный гайд с кодом и пояснениями.

🛠 Как в VBA сделать редактирование записей в базе данных: пошаговое руководство на примере формы в Excel

Редактирование данных — ключевая функция любой базы. Если раньше наша форма только добавляла записи, теперь пришло время научиться менять уже существующие данные. Это особенно важно, если вы используете Excel как систему учёта: учебные курсы, заказы, проекты, что угодно.

Сегодня мы добавим во вкладку формы в Excel второй режим работы — режим редактирования строки. Всё просто, понятно и с реальной практикой.

📌 Шаг 1. Добавляем вторую вкладку в Multipage

В редакторе формы (UserForm) уже есть элемент MultiPage. В первой вкладке — форма добавления данных. Во второй теперь будет редактирование.

Переименовываем:

  • Page1 → Новый
  • Page2 → Редактировать

Копируем элементы из первой вкладки и вставляем во вторую. Все элементы должны получить новые имена — добавим суффикс _R, например:

  • TB_Name_R,
  • TB_Desc_R,
  • TB_Price_R,
  • cmb_Category_R.

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

🧩 Шаг 2. Настраиваем выпадающий список ID + Название

Чтобы пользователь выбирал запись, мы добавим ComboBox со всеми ID и названиями из таблицы. Для этого:

  1. Переходим на лист с базой данных.
  2. Создаём именованный диапазон kurs_ID с формулой:

▪ Формула через СМЕЩ:

=СМЕЩ(Лист1!$A$2; 0; 0; СЧЁТЗ(Лист1!$A:$A)-1; 2)

Это создаст динамический диапазон с ID и Названием из колонок A и B, исключая заголовок.

  1. В UserForm настраиваем RowSource для ComboBox:
cmb_ID_R.RowSource = "kurs_ID"

cmb_ID_R.ColumnCount = 2

cmb_ID_R.ColumnWidths = "50;150"

Теперь при запуске формы пользователю будет предложен список:

101 Курс Excel
102 Английский за 5 дней
...

🛠 Пример кода настройки источника данных

Вот как это выглядит в редакторе VBA:

cmb_ID_R.RowSource = "kurs_ID"

cmb_ID_R.ColumnCount = 2

cmb_ID_R.ColumnWidths = "50;150"

✅ Что уже готово и что будет дальше?

🔹 Мы добавили вторую вкладку формы — "Редактировать"

🔹 Настроили выпадающий список ID + Название

🔹 Подключили динамический диапазон

👉 Следующий шаг — автоматическое заполнение остальных полей при выборе ID. Об этом — во второй части.

📣 Хотите продолжение?

Пишите в комментарии под статьёй, если вам нужно:

– Заполнение данных по ID

– Возможность редактировать и перезаписывать строку

– Проверка изменений и защита от ошибок

А чтобы не пропустить — подпишитесь на наши каналы на Дзене и в Телеграм.