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

Как автоматически заполнять поля формы в Excel VBA при выборе ID курса

Узнайте, как реализовать автозаполнение формы при выборе записи из базы данных Excel. Простая реализация через событие Change и STRComp. Полный код, пояснения, шаблон и гайд — в статье! Управление данными — это не только добавление, но и удобное редактирование. Представьте: вы выбираете нужный курс из выпадающего списка — и все поля автоматически подставляются из базы. Красиво? А главное — эффективно. В этой статье мы реализуем логику автозаполнения полей формы Excel VBA на вкладке редактирования, основываясь на ID из списка. Такой приём пригодится всем, кто создаёт формы управления курсами, заказами, заявками — и хочет сэкономить время и минимизировать ошибки. В форме уже должна быть вкладка для редактирования, и на ней — ComboBox с именем cmb_ID_R. Именно в него мы загружаем список ID и названий курсов из базы данных. Список курсов должен подгружаться заранее через RowSource, как было показано в предыдущем уроке. А теперь — пора оживить этот список, чтобы он работал как триггер автоз
Оглавление

Узнайте, как реализовать автозаполнение формы при выборе записи из базы данных Excel. Простая реализация через событие Change и STRComp. Полный код, пояснения, шаблон и гайд — в статье!

Автоматическое заполнение полей при выборе ID в форме VBA

Управление данными — это не только добавление, но и удобное редактирование. Представьте: вы выбираете нужный курс из выпадающего списка — и все поля автоматически подставляются из базы. Красиво? А главное — эффективно.

В этой статье мы реализуем логику автозаполнения полей формы Excel VBA на вкладке редактирования, основываясь на ID из списка. Такой приём пригодится всем, кто создаёт формы управления курсами, заказами, заявками — и хочет сэкономить время и минимизировать ошибки.

🧩 Что мы реализуем

  • При выборе ID из выпадающего списка (ComboBox) автоматически подтягиваются:
    Название курса
    Описание
    Цена
    Категория
  • Все данные берутся напрямую из таблицы, связанной с формой
  • Реализуем через событие Change и функцию сравнения строк StrComp

🔧 Подготовка формы: второй таб и ComboBox

В форме уже должна быть вкладка для редактирования, и на ней — ComboBox с именем cmb_ID_R. Именно в него мы загружаем список ID и названий курсов из базы данных.

Список курсов должен подгружаться заранее через RowSource, как было показано в предыдущем уроке. А теперь — пора оживить этот список, чтобы он работал как триггер автозаполнения.

⚙️ Код VBA: автозаполнение по выбранному ID

Сейчас — основа нашего функционала. Вставим обработчик события Change для cmb_ID_R:


Private Sub cmb_ID_R_Change()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Лист1")
Dim myR As Long
myR = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
Dim i As Long
For i = 2 To myR
 If StrComp(Me.cmb_ID_R.Value, ws.Cells(i, 1).Value, vbTextCompare) = 0 Then
  Me.TB_name_R.Value = ws.Cells(i, 2).Value
  Me.TB_desk_R.Value = ws.Cells(i, 3).Value
  Me.TB_price_R.Value = ws.Cells(i, 4).Value
  Me.cmb_category_R.Value = ws.Cells(i, 5).Value
  Exit Sub
 End If
Next i
End Sub

📌 Как это работает

  • Сначала определяем последний заполненный ряд в базе
  • Циклом идём по строкам от 2 до последней
  • Сравниваем значение ComboBox с ID из базы
  • Если они равны (сравнение строк через StrComp), подставляем соответствующие значения в остальные поля

В результате — пользователь выбирает ID, и сразу видит все данные, готовые к редактированию. Удобно и наглядно!

🎯 Почему стоит использовать этот подход

  • Скорость работы — не нужно искать и вводить вручную
  • Точность — данные берутся строго по ID
  • Интуитивность — пользователь видит, что он редактирует
  • Гибкость — можно адаптировать под любые типы данных

Если вы строите форму Excel с базой данных — такой подход почти обязателен.

✅ Советы для практики

  • Убедитесь, что список ID загружается правильно
  • Используйте именованные диапазоны для привязки RowSource
  • Следите, чтобы формат ID был одинаковым (текст или число)
  • Проверьте, что у полей формы правильные имена (TB_name_R, TB_price_R и т.д.)

📢 Подпишитесь и оставьте комментарий

Если статья была полезна — обязательно подпишитесь на наш канал в Дзене и Telegram-канал, где выходит эксклюзивный контент, файлы, шаблоны и гайды.

В комментариях расскажите, какую ещё функцию вы бы хотели реализовать в формах VBA!