Belli bir aralığa form aracılığı ile kayıt.

Hakan ERDOST

Destek Ekibi
Destek Ekibi
Katılım
12 Eylül 2004
Mesajlar
883
Excel Vers. ve Dili
Excel 2019 Türkçe (Ev)
Excel 2013 Türkçe (Okul)
Bu kod ile B10:I28 aralığına kayıt yapıyorum. Ancak sürekli aynı satıra kayıt yapıyorum. Alta alta kayıt için neyi düzeltemem gerektiğini bilemedim.
Kod:
Private Sub CommandButton1_Click()
Sheets("Rapor").Select

Set D = Sheets("Rapor")

If ComboBox1 = "" Then MsgBox "Sınıf seçiniz!", vbCritical: Exit Sub
If ComboBox2 = "" Then MsgBox "Şube seçiniz!", vbCritical: Exit Sub
If TextBox1 = "" Then MsgBox "Öğrenci Mevcudunuzu giriniz!", vbCritical: Exit Sub

     Son_Dolu_Satir = Sheets("Rapor").Range("B10:B28").End(xlUp).Row
        Bos_Satir = Son_Dolu_Satir + 1
   
        Range("B" & Bos_Satir + 1).Value = TextBox1.Value
        Range("E" & Bos_Satir + 1).Value = ComboBox2.Value
        Range("F" & Bos_Satir + 1).Value = ComboBox3.Value
        Range("G" & Bos_Satir + 1).Value = TextBox4.Value
        Range("H" & Bos_Satir + 1).Value = TextBox2.Value
        Range("I" & Bos_Satir + 1).Value = TextBox3.Value
       
        Range("B4").Value = ComboBox4.Value & ComboBox5.Value
        Range("F4").Value = TextBox4.Value
        Range("H4").Value = ComboBox1.Value
   
       
       If OptionButton1.Value = True Then
        Range("C" & Bos_Satir + 1) = "Canlı"
            ElseIf OptionButton2.Value = True Then
        Range("D" & Bos_Satir + 1) = "Video"
            Else
        Range("C" & Bos_Satir + 1) = ""
End If

TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox5 = ""
ComboBox1 = ""
ComboBox2 = ""
ComboBox3 = ""
ComboBox4 = ""
ComboBox5 = ""
     End Sub
Kod:
 
Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,744
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Şu satırı düzeltmeniz gerekiyor.

Son_Dolu_Satir = Sheets("Rapor").Range("B10:B28").End(xlUp).Row
 

Hakan ERDOST

Destek Ekibi
Destek Ekibi
Katılım
12 Eylül 2004
Mesajlar
883
Excel Vers. ve Dili
Excel 2019 Türkçe (Ev)
Excel 2013 Türkçe (Okul)
Şu satırı düzeltmeniz gerekiyor.

Son_Dolu_Satir = Sheets("Rapor").Range("B10:B28").End(xlUp).Row
Teşekkürler üstad. Son dolu satır, boş satır bulma genelde sütun üzerinden yaptığım bir işlem. ancak bu kez veri aktarmak istedğim bir form ve bu formdaki veri aralığı B12:I28 aralığında , kodda aralığı bu şekilde de değiştirmeme rağmen yine aynı satıra kayıt yapıyorum. Velhasılı kelam 10. satırı buludum ancakak altına geçemedim:))
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,744
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Genelde son satırı bulmak için aşağıdaki yapı kullanılır.

Son = Cells(Rows.Count, 1).End(3).Row

Bu kod aktif sayfada "A" sütunundaki son dolu satırı bulur. Bu değerin üzerine 1 eklenerek boş satır tespit edilir.

Son = Cells(Rows.Count, 1).End(3).Row + 1

Parantez içindeki Rows.Count ifadesi versiyon fark etmeksizin excelin en son satır sayısını ifade eder. (Şimdilk 65.536 ya da 1.048.576)

Sizin örneğinize göre boş satırı bulma kodu aşağıdaki gibi olmalıdır.

Son = Sheets("Rapor").Cells(28, 2).End(3).Row + 1

Eğer 28. satıra veri girişi yapacaksanız parantez içindeki 28 değerini 29 olarak değiştirip test ediniz.

Artık kendinize göre uyarlarsınız.
 

Hakan ERDOST

Destek Ekibi
Destek Ekibi
Katılım
12 Eylül 2004
Mesajlar
883
Excel Vers. ve Dili
Excel 2019 Türkçe (Ev)
Excel 2013 Türkçe (Okul)
Genelde son satırı bulmak için aşağıdaki yapı kullanılır.

Son = Cells(Rows.Count, 1).End(3).Row

Bu kod aktif sayfada "A" sütunundaki son dolu satırı bulur. Bu değerin üzerine 1 eklenerek boş satır tespit edilir.

Son = Cells(Rows.Count, 1).End(3).Row + 1

Parantez içindeki Rows.Count ifadesi versiyon fark etmeksizin excelin en son satır sayısını ifade eder. (65.536 ya da 1.048.576)

Sizin örneğinize göre boş satırı bulma kodu aşağıdaki gibi olmalıdır.

Son = Sheets("Rapor").Cells(28, 2).End(3).Row + 1

Eğer 28. satıra veri girişi yapacaksanız parantez içindeki 28 değerini 29 olarak değiştirip test ediniz.

Artık kendinize göre uyarlarsınız.
Korhan bey, açıklama için ayrıca teşekkürler.
 
Son düzenleme:
Üst