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

Форма ввода данных в Excel VBA: от нажатия кнопки до заполнения базы

Пошаговая инструкция по созданию формы ввода данных в Excel VBA: как отправить данные с формы в таблицу, обработать их макросом, избежать ошибок с типами, сохранить файл. Готовый шаблон и SEO-гайд уже ждут вас! Если вы работаете с большими таблицами, вручную заносить данные — это как ремонтировать кран молотком. Пользовательская форма в Excel VBA позволяет упростить ввод данных, избежать ошибок и повысить скорость. В этой статье мы разберём: Открываем редактор VBA (Alt + F11), жмём Insert → UserForm. Добавляем элементы: Задаём понятные имена в свойствах: Дважды кликаем по кнопке «Сохранить» на форме и вставляем следующий код: │ Private Sub Btn_Save_Click()
│ * Dim ws As Worksheet*
│ * Set ws = ThisWorkbook.Sheets("База")*
│ * Dim myRow As Long*
│ * myRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1*
│ * ws.Cells(myRow, 1).Value = TB_ID.Value*
│ * ws.Cells(myRow, 2).Value = TB_Name.Valu*
│ * ws.Cells(myRow, 3).Value = TB_Desc.Value*
│ * ws.Cells(myRow, 4).Value = Val(TB_Price.Value)*
Оглавление

Пошаговая инструкция по созданию формы ввода данных в Excel VBA: как отправить данные с формы в таблицу, обработать их макросом, избежать ошибок с типами, сохранить файл. Готовый шаблон и SEO-гайд уже ждут вас!

🧠 Форма ввода данных в Excel VBA с макросами: пошаговый гайд

Зачем нужна форма ввода?

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

В этой статье мы разберём:

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

🔧 Этап 1. Создаём форму и задаём имена элементам

Открываем редактор VBA (Alt + F11), жмём Insert → UserForm. Добавляем элементы:

  • TextBox для ID, названия, описания, цены;
  • ComboBox для категории;
  • CommandButton для сохранения данных.

Задаём понятные имена в свойствах:

  • TB_ID, TB_Name, TB_Desc, TB_Price, CB_Category, Btn_Save.

🔄 Этап 2. Пишем макрос для записи данных в таблицу

Дважды кликаем по кнопке «Сохранить» на форме и вставляем следующий код:

Private Sub Btn_Save_Click()
│ * Dim ws As Worksheet*
│ * Set ws = ThisWorkbook.Sheets("База")*
│ * Dim myRow As Long*
│ * myRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1*
│ * ws.Cells(myRow, 1).Value = TB_ID.Value*
│ * ws.Cells(myRow, 2).Value = TB_Name.Valu*
│ * ws.Cells(myRow, 3).Value = TB_Desc.Value*
│ * ws.Cells(myRow, 4).Value = Val(TB_Price.Value)*
│ * ws.Cells(myRow, 5).Value = CB_Category.Value*
│ * MsgBox "Запись добавлена!"*
│ * Me.Hide*
End Sub

📌 Важный момент: используем Val() для преобразования строки в число. Это помогает избежать ошибки, когда Excel думает, что вы вставили текст, хотя хотели число.

🧹 Этап 3. Очищаем форму после использования (опционально)

Можно добавить в код строку для очистки полей:

TB_ID.Value = ""
TB_Name.Value = ""
TB_Desc.Value = ""
TB_Price.Value = ""
CB_Category.Value = ""

🧪 Этап 4. Добавим макрос запуска формы

В отдельный модуль вставляем:

Sub ShowForm()
│ * UserForm1.Show*
End Sub

А на листе Excel добавим кнопку (вкладка «Вставка» → «Фигуры») и назначим этот макрос.

💡 Этап 5. Проблема с типами данных

Если в таблицу вставляется цена, а Excel считает её текстом — возможно, вы не преобразовали данные.

Используйте Val() или задайте формат ячеек в коде:

ws.Cells(myRow, 4).NumberFormat = "0.00"

🎁 Готовый файл

Вы можете скачать готовый .xlsm с рабочей формой. Он уже содержит:

  • макрос записи данных;
  • элементы управления;
  • предустановленные стили;
  • поле со списком категорий.

📢 Подпишитесь на наш канал в Дзене, чтобы не пропустить новые гайды по Excel, Word, PowerPoint и VBA. А если вам удобнее в Telegram — шаблон уже там.

💬 Напишите в комментариях, как вы используете формы в Excel и какие поля у вас самые частые.