Soru VBA da buton yardımı ile textboxlara sayıları ve tarihleri otomatik yazdırma

Katılım
24 Mart 2009
Mesajlar
24
Excel Vers. ve Dili
TR,2019,32bit
Merhabalar iyi akşamlar arkadaşlar. Bir taksit bölme programı yapmaya çalışıyorum. Yapmak istediğim VBA da toplam tutarı textboxa yazdıktan sonra bir başlangıç tarihi belirlemek ardından taksit sayısını girdikten sonra taksit böl butonu ile sonucu ilgili textboxlara yazması fakat tarihi 1'er ay arttırarak ve taksit sayısı kadar textboxa yazdırması. Şimdiden teşekkürler. İlgili dosya ektedir.https://dosya.co/46e5p6vt1gmz/deneme1.xlsm.html
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Dosyanızı biraz geliştirdim. Tarih textboxını seçtiğinizde takvim açılacak ve ordan seçebileceksiniz. Ekli dosyayı inceleyiniz:

 
Katılım
24 Mart 2009
Mesajlar
24
Excel Vers. ve Dili
TR,2019,32bit
Başka bir sorum daha olacak combobaxtaki kyt1 i seçtiğimizde kyt1 in verileri
sırano tarih taksit
1 10.07.2020 100
2 10.08.2020 100
3 10.09.2020 100
yani ben verileri hücreye yan yana yazacağım fakat verileri listboxa alt alta sıralaması dosya ektedir.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Aşağıdaki kodları deneyin. Bir de dosyalarınıza userformları kısayoldan açmak için bir düğme eklemenizi tavsiye ederim.

PHP:
Private Sub ComboBox1_Change()
Set s1 = Sheets("Sayfa1")
son = s1.Cells(Rows.Count, "A").End(3).Row
ListBox1.Clear
sat = ComboBox1.ListIndex + 2
sonsut = s1.Cells(sat, Columns.Count).End(xlToLeft).Column
a = 0
For i = 2 To sonsut Step 3
    ListBox1.AddItem
    ListBox1.List(a, 0) = s1.Cells(sat, i)
    ListBox1.List(a, 1) = s1.Cells(sat, i + 1)
    ListBox1.List(a, 2) = s1.Cells(sat, i + 2)
    a = a + 1
Next
End Sub

Private Sub UserForm_Initialize()
ListBox1.ColumnCount = 3  ' lisbox'ta ki sütun sayısı
ListBox1.ColumnWidths = 100 & ";" & 70  'lisbox'taki sütunların genişliği
End Sub
 
Katılım
24 Mart 2009
Mesajlar
24
Excel Vers. ve Dili
TR,2019,32bit

Yusuf hocam bu kodları kendime uyduramadım. Yeni bir link gönderiyorum.
Seçme işlemi yaptıktan sonra öğrencinin bilgileri textboxa gelince taksit bilgilerini listboxa yazması s sütünundan başlayacak tarih ve tutarı oradan alacak listboxa sıra noyu otomatik yazacak 12 taksite kadar gitmeli

                       
                       
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Yeni bir "çıkarın kağıtları sözlü yapacağım" durumu :)

Önceki dosyanızla bu dosyanız arasında nerdeyse hiç benzerlik yok:

1- İlk dosyada aynı userformdaki bir combobox'tan seçim yapılıp (ki bu bence daha iyiydi) listboxta gösterilirken bu dosyada başka bir userform düğme ile çağrılıp,ikinci userformdaki listboxtan seçim yapılıp, ilk userformda sonuç gösterilmek isteniyor.
2- İlk dosyada veriler 2. sütundan başlayıp, sırano, tarih ve tutar şeklinde sıralanmışken, bu dosyada 19. sütundan başlamış, ayrıca sıra no sütunu silinmiş, her taksit 3 yerine 2 sütun olmuş.

Lütfen sorularınızı her zaman asıl dosyanızla birebir aynı yapıda olan örnek dosyayla sorun ki daha sonra düzeltmek için uğraşmayalım. Bunca yıldır bu forumdayım, daha farklı dosya paylaşıp da çözümü asıl dosyasına uydurabilen nerdeyse hiç görmedim.

Eğer değişmeyecekse bu dosyaya göre userform1'in kodları şu şekilde (eski kodları tamamen iptal edin):

PHP:
Private Sub CommandButton1_Click()
UserForm2.Show
End Sub

Private Sub UserForm_Initialize()
ListBox1.ColumnCount = 3  ' lisbox'ta ki sütun sayısı
ListBox1.ColumnWidths = 100 & ";" & 70  'lisbox'taki sütunların genişliği
End Sub
Userform2'nin kodları da şu şekilde (yine eski kkodları tamamen iptal edin):

PHP:
Private Sub ListBox1_Click()
If ListBox1.ListCount < 0 Then Exit Sub
UserForm1.TextBox1.Value = ListBox1.List(ListBox1.ListIndex, 0)
Set s1 = Sheets("Sayfa1")
son = s1.Cells(Rows.Count, "A").End(3).Row
UserForm1.ListBox1.Clear
sat = ListBox1.ListIndex + 2
sonsut = s1.Cells(sat, Columns.Count).End(xlToLeft).Column
a = 0
For i = 19 To sonsut Step 2
    UserForm1.ListBox1.AddItem
    UserForm1.ListBox1.List(a, 0) = a + 1
    UserForm1.ListBox1.List(a, 1) = Format(s1.Cells(sat, i), "dd/mm/yyyy")
    UserForm1.ListBox1.List(a, 2) = s1.Cells(sat, i + 1)
    a = a + 1
Next
Unload Me
End Sub

Private Sub UserForm_Initialize()
Set s1 = Sheets("Sayfa1")
son = s1.Cells(Rows.Count, "A").End(3).Row
ListBox1.List = Application.Transpose(s1.Range("A2:A" & son))
End Sub
 
Katılım
24 Mart 2009
Mesajlar
24
Excel Vers. ve Dili
TR,2019,32bit
Private Sub ListBox1_Click() If ListBox1.ListCount < 0 Then Exit Sub UserForm1.TextBox1.Value = ListBox1.List(ListBox1.ListIndex, 0) Set s1 = Sheets("Sayfa1") son = s1.Cells(Rows.Count, "A").End(3).Row UserForm1.ListBox1.Clear sat = ListBox1.ListIndex + 2 sonsut = s1.Cells(sat, Columns.Count).End(xlToLeft).Column a = 0 For i = 19 To sonsut Step 2 UserForm1.ListBox1.AddItem UserForm1.ListBox1.List(a, 0) = a + 1 UserForm1.ListBox1.List(a, 1) = Format(s1.Cells(sat, i), "dd/mm/yyyy") UserForm1.ListBox1.List(a, 2) = s1.Cells(sat, i + 1) a = a + 1 Next Unload Me End Sub Private Sub UserForm_Initialize() Set s1 = Sheets("Sayfa1") son = s1.Cells(Rows.Count, "A").End(3).Row ListBox1.List = Application.Transpose(s1.Range("A2:A" & son)) End Sub
Hocam çok teşekkür ederim eline koluna parmaklarına sağlık süper oldu kendime uyarladım. Projede eksik yerler var ara ara buraya yazarım yardımlarınızı esirgemezseniz sevinirim. Sabrınızdan dolayıda ayrıca teşekkürler.
 
Üst