Userform taksitlendirme kodu hk.

kemal turan

Altın Üye
Katılım
10 Haziran 2011
Mesajlar
1,667
Excel Vers. ve Dili
Excel 2010 32 bit
Altın Üyelik Bitiş Tarihi
06-10-2032
Merhaba Ustalarımız,
Aşağıdaki kod ile taksitlendirme yapıyorum.
Daha önce kullandığım bu kodda Tarihi aşağıdaki comboboxlar ile giriyordum. sorun yoktu.
Tarih = DateSerial(ComboBox3.Value, ComboBox2.Value - 1, ComboBox1.Value)

fakat ilk ödeme tarihini textbox ile girdiğimde
Textbox 22 ye ilk ödeme yapılacak tarihi değilde 1 ay sonrasını atıyor.
Textbox22 ye Textbox 21 de yazdığım tarihi ilk olarak atmasını istiyorum.

Teşekkür ederim.

Kod:
Sub taksitlendir()
    Dim Tarih   As Date
    Dim TAdet   As Integer
    Dim i       As Integer
    Dim Taksit  As Currency
   
    Tarih = Format(CDate(TextBox21.Value), "dd.mm.yyyy") ' ilk ödeme yapılacak tarih
    TAdet = ComboBox10.Value ' taksit sayısı
    Taksit = Round(TextBox20.Value / TAdet) ' borç tutarı
   
    For i = 22 To 45
        Controls("TextBox" & i) = Empty
    Next i
   
    i = 21
   
    Do
        i = i + 1
        Tarih = DateAdd("m", 1, Tarih)
        Controls("TextBox" & i) = Format(Tarih, "dd.mm.yyyy")
        Controls("TextBox" & i + 12) = Format(Taksit, "#,##0.00")
   Loop While i - 21 < TAdet
 
   topla
   taksıttutar
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,248
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Diğer TextBox'lara tarihler doğru geliyorsa;

i = 21

Bold bölümü 22 yazarak sorunu aşabilirsiniz gibi görünüyor.

Son olarak aşağıdaki satırı ekleyerek ilk tarihi düzgün gösterebilirsiniz.

TextBox22 = Tarih
 

kemal turan

Altın Üye
Katılım
10 Haziran 2011
Mesajlar
1,667
Excel Vers. ve Dili
Excel 2010 32 bit
Altın Üyelik Bitiş Tarihi
06-10-2032
Merhaba Korhan Hocam,
Önerinizi yaptığımda textbox23 ten başlıyor.
Dosya da listview var onun için yüklememiştim.
Gerekli açıklamalarıda form üzerinde yaptım.
İlginiz için teşekkür ederim.
 

Ekli dosyalar

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Kodunuzda aşağıdaki kırmızı renkli düzeltmeyi yaparak deneyin.

Do
i = i + 1
Tarih = DateAdd("m", c, Tarih)
Controls("TextBox" & i) = Format(Tarih, "dd.mm.yyyy")
Controls("TextBox" & i + 12) = Format(Taksit, "#,##0")
c = 1
Loop While i - 21 < TAdet
 
Son düzenleme:

kemal turan

Altın Üye
Katılım
10 Haziran 2011
Mesajlar
1,667
Excel Vers. ve Dili
Excel 2010 32 bit
Altın Üyelik Bitiş Tarihi
06-10-2032
Levent hocam merhaba,
Çok teşekkür ederim.
Kodunuz istediğim gibi çalıştı.
Selametle kalınız.
 
Üst