Userform, textbox ile boş satıra kaydetme

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,311
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
Arkadaşlar, örnek dosyada KAYDET butonu boş tabi ki.
Normalde yapabiliyorum ama. Ardışık olunca yapamadım.
TextBox1 Sayfa1 A sütunu için
TextBox2 Sayfa1 B sütunu için
TextBox3 Sayfa1 C sütunu için
(ben bunu artıracağım, mesela D sütunu boş, M'ye kadar gidiyor)

Boş olan ilk satıra, yazacak KAYDET deyince kaydetmiş olacak.

Şimdiden çok ama çok teşekkür ederim.
 

Ekli dosyalar

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,311
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
Sayın hocalarımız. Bir yardımcı olabilir misiniz. Yapmayı denedim, yapamadım.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,784
Excel Vers. ve Dili
Microsoft 365 Tr-64
C#:
Sub TümTextBoxKaydet()
Dim Kontrol As Control
' Tek şart, TextBox ların sıralanması Sütun sıralamasıyla bir olsun
    Son = Range("A1").End(xlDown).Row + 1
    For Each Kontrol In Controls
        If TypeName(Kontrol) = "TextBox" Then
            Say = Say + 1
            Cells(Son, Say) = Kontrol
        End If
    Next Kontrol
End Sub
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,311
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
C#:
Sub TümTextBoxKaydet()
Dim Kontrol As Control
' Tek şart, TextBox ların sıralanması Sütun sıralamasıyla bir olsun
    Son = Range("A1").End(xlDown).Row + 1
    For Each Kontrol In Controls
        If TypeName(Kontrol) = "TextBox" Then
            Say = Say + 1
            Cells(Son, Say) = Kontrol
        End If
    Next Kontrol
End Sub
Hocam, öncelikle teşekkür ederim. Sıralama olayını anlamadım. Şimdi şöyle, kayıt yapılacak sütunlar A - B - C - D -F - I - P - Q - R -S - T - U
yani aralarda boşluklar var. Nasıl yapacağım.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,784
Excel Vers. ve Dili
Microsoft 365 Tr-64
Şöyle yaparım ben olsam.
A sütunu için olan TextBoxa tb_01, B için tb_02, K için tb_11 gibi isimler veririm.
Kod:
Sub TümTextBoxKaydet()
Dim Kontrol As Control
' Tek şart, TextBox ların sıralanması Sütun sıralamasıyla bir olsun
    Son = Range("A1").End(xlDown).Row + 1
    For Each Kontrol In Controls
        If TypeName(Kontrol) = "TextBox" Then
            Say = Right(Kontrol.Name, 2) * 1
            Cells(Son, Say) = Kontrol
        End If
    Next Kontrol
End Sub
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,311
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
Şöyle yaparım ben olsam.
A sütunu için olan TextBoxa tb_01, B için tb_02, K için tb_11 gibi isimler veririm.
Kod:
Sub TümTextBoxKaydet()
Dim Kontrol As Control
' Tek şart, TextBox ların sıralanması Sütun sıralamasıyla bir olsun
    Son = Range("A1").End(xlDown).Row + 1
    For Each Kontrol In Controls
        If TypeName(Kontrol) = "TextBox" Then
            Say = Right(Kontrol.Name, 2) * 1
            Cells(Son, Say) = Kontrol
        End If
    Next Kontrol
End Sub
Peki hocam, aradaki E sütununu nasıl atlıyor. Size yazdığım sütunlar gerçekten dosyamdaki sütun sıralaması.
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,311
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
Şöyle yaparım ben olsam.
A sütunu için olan TextBoxa tb_01, B için tb_02, K için tb_11 gibi isimler veririm.
Kod:
Sub TümTextBoxKaydet()
Dim Kontrol As Control
' Tek şart, TextBox ların sıralanması Sütun sıralamasıyla bir olsun
    Son = Range("A1").End(xlDown).Row + 1
    For Each Kontrol In Controls
        If TypeName(Kontrol) = "TextBox" Then
            Say = Right(Kontrol.Name, 2) * 1
            Cells(Son, Say) = Kontrol
        End If
    Next Kontrol
End Sub
Bir de hocam, TextBox 17'den başlıyor. ilk 16 dolu.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,784
Excel Vers. ve Dili
Microsoft 365 Tr-64
Dediğim gibi yapabilirsin
Sütunlarımız A-1 / B-2 / C-3 /....diye devam ediyor ya, siz de hangi textbox hangi sütuna kaydedilecekse TextBox özelliklerine girip adını değiştirin, o sütunun numarasını verin.
N sütununa kaydolacak textbox adının son 2 hanesi 14 olsun, TextBox14, TextBox_14, Tb_14 gibi. Kendinize göre uyarlayın.
Aynı şekilde E sütununa kaydeidlecek olan Textbox_05 olsun. gibi
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,311
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
Dediğim gibi yapabilirsin
Sütunlarımız A-1 / B-2 / C-3 /....diye devam ediyor ya, siz de hangi textbox hangi sütuna kaydedilecekse TextBox özelliklerine girip adını değiştirin, o sütunun numarasını verin.
N sütununa kaydolacak textbox adının son 2 hanesi 14 olsun, TextBox14, TextBox_14, Tb_14 gibi. Kendinize göre uyarlayın.
Aynı şekilde E sütununa kaydeidlecek olan Textbox_05 olsun. gibi
Doğru mu anladım hocam, mesela A B C E sütunları var, D sütununa kayıt yapılmayacak.
A sütunu için Tb_1
B sütunu için Tb_2
C sütunu için Tb_3
E sütunu için Tb_5

Olarak değiştireceğim. Kodu da kaydet butonuna yapıştıracağım.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,784
Excel Vers. ve Dili
Microsoft 365 Tr-64
Doğru ama
Sütun sayısı 2 basamaklı da olacağı için kod bu haliyle düzgün çalışsın diye
Tb_1 değil Tb_01
Tb_2 değil Tb_02 yap

İki basamaklı sütunlar için Tb_10, Tb_11 gibi olacak
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,311
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
Doğru ama
Sütun sayısı 2 basamaklı da olacağı için kod bu haliyle düzgün çalışsın diye
Tb_1 değil Tb_01
Tb_2 değil Tb_02 yap

İki basamaklı sütunlar için Tb_10, Tb_11 gibi olacak
Anladım hocam. Deneyip sonucu bildireceğim.
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,311
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
Alternatif olsun. İnceleyiniz.

Hocam, örnek dosya çok güzel ama iki sorum olacak. Kaydet butonuna bastıkça kayıt yapıyor. Kaydet dedikten sonra tabloyu boşaltması lazım. Bir de sütunlar önemli, mesela D sütununa kayıt gelmeyecek. Ama boş bir textbox da olsun istemiyorum.
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,311
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
Dediğim gibi yapabilirsin
Sütunlarımız A-1 / B-2 / C-3 /....diye devam ediyor ya, siz de hangi textbox hangi sütuna kaydedilecekse TextBox özelliklerine girip adını değiştirin, o sütunun numarasını verin.
N sütununa kaydolacak textbox adının son 2 hanesi 14 olsun, TextBox14, TextBox_14, Tb_14 gibi. Kendinize göre uyarlayın.
Aynı şekilde E sütununa kaydeidlecek olan Textbox_05 olsun. gibi
Hocam, kayıt yapmadı, zaten kaydet butonu ile ilgili bir şey yapmadım sanırım. Yoksa yazınca başka bir şey mi yapmam gerekiyordu.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,784
Excel Vers. ve Dili
Microsoft 365 Tr-64
Kodları Kaydet butonunu altına yaz ya d aoradan CALL ile çağır.
Mevcut güncel dosyanı gönder onun üzerine düzeltip yollayayım
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,311
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
Kodları Kaydet butonunu altına yaz ya d aoradan CALL ile çağır.
Mevcut güncel dosyanı gönder onun üzerine düzeltip yollayayım
Hocam, orijinali bozmayayım diye dediklerinizi kopyaya yapmıştım. Gönderdim size.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,784
Excel Vers. ve Dili
Microsoft 365 Tr-64
Bu kodu bir satır ekledim.
C++:
Sub TümTextBoxKaydet()
Dim Kontrol As Control
' Tek şart, TextBox ların sıralanması Sütun sıralamasıyla bir olsun
    Son = Range("A1").End(xlDown).Row + 1
    Range("A" & Son) = ComboBox1.Value
    For Each Kontrol In Controls
        If TypeName(Kontrol) = "TextBox" Then
            Say = Right(Kontrol.Name, 2) * 1
            Cells(Son, Say) = Kontrol
        End If
    Next Kontrol
End Sub
Kaydet butonunuzun koduna da bir satır ilave ettim
C#:
Private Sub CommandButton6_Click()
TümTextBoxKaydet 'ilave ettim
ThisWorkbook.Save
Application.Quit
End Sub
224363

Formdaki tüm textboxların ismini bu şekilde değiştireceksin. Hepsini sütunlara kaydediyorsun diye dedim.
Eğer kaydetmediğin bir TextBox varsa söylemelisin.
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,311
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
Bu kodu bir satır ekledim.
C++:
Sub TümTextBoxKaydet()
Dim Kontrol As Control
' Tek şart, TextBox ların sıralanması Sütun sıralamasıyla bir olsun
    Son = Range("A1").End(xlDown).Row + 1
    Range("A" & Son) = ComboBox1.Value
    For Each Kontrol In Controls
        If TypeName(Kontrol) = "TextBox" Then
            Say = Right(Kontrol.Name, 2) * 1
            Cells(Son, Say) = Kontrol
        End If
    Next Kontrol
End Sub
Kaydet butonunuzun koduna da bir satır ilave ettim
C#:
Private Sub CommandButton6_Click()
TümTextBoxKaydet 'ilave ettim
ThisWorkbook.Save
Application.Quit
End Sub
Ekli dosyayı görüntüle 224363

Formdaki tüm textboxların ismini bu şekilde değiştireceksin. Hepsini sütunlara kaydediyorsun diye dedim.
Eğer kaydetmediğin bir TextBox varsa söylemelisin.
Sub TümTextBoxKaydet()
Dim Kontrol As Control
' Tek şart, TextBox ların sıralanması Sütun sıralamasıyla bir olsun
Son = Range("A1").End(xlDown).Row + 1
Range("A" & Son) = ComboBox1.Value
For Each Kontrol In Controls
If TypeName(Kontrol) = "TextBox" Then
Say = Right(Kontrol.Name, 2) * 1
Cells(Son, Say) = Kontrol
End If
Next Kontrol
End Sub
Hocam, bu şekilde hata veriyor. Adlarını sırasıyla değiştirdim TextBox_01 şeklinde
 
Üst