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.