Chcesz, żeby Excel działał jak prawdziwa aplikacja, w której dodajesz dane przez formularz zamiast wklepywać je ręcznie? Dziś pokażę Ci, jak to ogarnąć — bez żadnych dodatków, tylko za pomocą wbudowanego edytora VBA.
To rozwiązanie sprawdzi się wszędzie tam, gdzie często dodajesz nowe wpisy, np. produkty i ceny. Będzie prosto, zrozumiale i bez nadmiaru kodu.
Co zrobimy?
Stworzymy formularz użytkownika, który:
- pozwoli wpisać nazwę produktu i cenę,
- po kliknięciu „Zapisz” — automatycznie doda dane do arkusza,
- dołoży datę (bo czemu nie),
- i zrobi to wszystko bez potrzeby uruchamiania makra za każdym razem.
1. Tworzymy formularz
Najpierw musisz wejść do edytora VBA (ALT + F11). W lewym menu kliknij:
Wstaw → Formularz użytkownika (UserForm).
Dodaj:
- dwie etykiety (
Label
) — wpisz „Produkt” i „Cena”, - dwa pola tekstowe (
TextBox
) — zmień ich nazwy natxtProdukt
itxtCena
, - dwa przyciski (
CommandButton
) — nazwij jecmdZapisz
icmdAnuluj
.
Na przyciskach wpisz odpowiednio:
- Zapisz
- Anuluj

2. Wklejamy kod do formularza
Kliknij dwa razy przycisk „Zapisz” i wklej ten kod:
vbaKopiujEdytujPrivate Sub cmdZapisz_Click()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Arkusz1") ' Zmień na swój arkusz
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1
ws.Cells(lastRow, 1).Value = txtProdukt.Value
ws.Cells(lastRow, 2).Value = txtCena.Value
ws.Cells(lastRow, 3).Value = Date
MsgBox "Dodano produkt: " & txtProdukt.Value, vbInformation
Unload Me
End Sub
Potem przejdź do przycisku Anuluj i wklej:
vbaKopiujEdytujPrivate Sub cmdAnuluj_Click()
Unload Me
End Sub
3. Uruchamianie formularza
Teraz potrzebujesz tylko sposobu na odpalenie tego formularza. Wstaw nowy moduł (Wstaw → Moduł) i dodaj:
vbaKopiujEdytujSub Formularz()
Formularz_uzytkownika.Show
End Sub
Pamiętaj, że Formularz_uzytkownika
to nazwa Twojego UserFormu. Jeśli nazywasz go inaczej, to oczywiście zmień to też tutaj.

Efekt końcowy
Klikasz formularz, wpisujesz dane, klikasz Zapisz — i gotowe. Produkt zapisany, cena dodana, data wstawiona. Bez błędów, bez dublowania, bez użerania się z formułami.
To serio działa świetnie i sam nie wiem, czemu tyle razy robiłem to ręcznie.
Najczęstszy błąd (i jak go uniknąć)
Jeśli wcześniej miałeś jakieś makro z Worksheet_Change
, które wyświetla InputBox
— wyłącz je albo usuń. Inaczej formularz będzie się dublował z okienkiem.
Podsumowanie
Ten prosty formularz to genialna sprawa:
- nie trzeba niczego wpisywać ręcznie,
- nie trzeba pamiętać o klikaniu makra,
- wygląda profesjonalnie,
- i — co najważniejsze — każdy ogarnie jego obsługę.
U mnie działa, u klientów działa, działać będzie też u Ciebie!