Excel Makro (VBA) Dersleri - 9: Userform ile Kayıt Formu (Bölüm 3 - CheckBox ve Son Satır Bulma)

kusha · 01 Ağustos 2026 · 5 dk okuma

Bu bölümde forma bir CheckBox (evet/hayır seçeneği) ekleyeceğiz ve — daha da önemlisi — her yeni kaydın önceki kaydın üzerine yazmadan otomatik olarak bir alt satıra eklenmesini sağlayacağız.

CheckBox Ekleme

Toolbox'tan CheckBox'ı forma ekleyin, Caption ile ne sorduğunu belirtin (ör. "Sigorta"). Kodda değeri okumak için:

If CheckBox1.Value = True Then
    Worksheets("Sayfa1").Range("G2").Value = "Var"
Else
    Worksheets("Sayfa1").Range("G2").Value = "Yok"
End If

CheckBox1.Value, işaretliyse True, değilse False döner — bunu doğrudan tabloya yazmak yerine "Var"/"Yok" gibi okunabilir bir metne çeviriyoruz.

Problem: Sabit Bir Satıra Yazmak

Önceki derslerde formdaki veriyi hep sabit bir satıra (ör. A2) yazdırıyorduk — bu, her yeni kayıtta eskisinin üzerine yazılması anlamına gelir. Çözüm: her kayıttan önce tablodaki son dolu satırı bulup, yeni veriyi onun bir altına yazmak.

Son Dolu Satırı Bulmak

Dim sonSatir As Long
sonSatir = Worksheets("Sayfa1").Range("A" & Rows.Count).End(xlUp).Row

Bu satır, A sütununun en altından (Rows.Count, sayfanın son satırı) yukarı doğru (End(xlUp)) ilk dolu hücreyi bulana kadar "gider" — tıpkı Excel'de bir hücreyi seçip Ctrl + Yukarı Ok tuşuna basmak gibi. Sonuç, en son dolu satırın numarasıdır.

Yeni Kaydı Bir Altına Eklemek

Private Sub CommandButton1_Click()
    Dim sonSatir As Long
    sonSatir = Worksheets("Sayfa1").Range("A" & Rows.Count).End(xlUp).Row

    Worksheets("Sayfa1").Range("A" & sonSatir + 1).Value = TextBox1.Value
    Worksheets("Sayfa1").Range("B" & sonSatir + 1).Value = TextBox2.Value
End Sub

sonSatir + 1 ile, bulunan son dolu satırın bir altına yazılır — bu sayede her "Kaydet" tıklamasında veri kaybolmadan alt alta birikir.

Sırada Ne Var?

Sırada, formumuza OptionButton, Frame ve MultiPage ekleyerek daha gelişmiş bir arayüz kuracağız.