tarih sorunu?

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,503
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
25-12-2029
merhaba arkadaşlar ekli dosyada ben bazı kodlar oluşturdum yapmak istediğim şuydu ekli dosyadada anlatmaya çalıştım denetim araç kutusundan oluşturduğum textbox a girdiğim tarihi baz alıp d stünuna alt alta gelecek şekilde 3 er ay arrtırarak yazmasını istiyorum kodları yazdım ama butona bastığımda hücrelere yazılan tarihler garip bir formatta çıkıyor bir türlü düzeltemedim bunu nasıl yapabilrim şimdiden ilgilenen arkadaşalrrıma teşekkür ederim
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Aşağıdaki şekilde deneyebilirmisiniz.

Kod:
Private Sub CommandButton1_Click()
Set s1 = Sheets("Sayfa1")
trh = CDate(TextBox1.Value)
s1.Cells(3, "d").Value = Format(DateSerial(Year(trh), Month(trh), Day(trh)), "dd.mm.yyyy")
For i = 4 To 50
trh2 = s1.Cells(i - 1, "d")
s1.Cells(i, "d").Value = (DateSerial(Year(trh2), Month(trh2), Day(trh2) + 90))
Next i
End Sub
 

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,503
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
25-12-2029
hocam

ilgin için teşekkür ederim yanlız
birincisi textbox1 e yazdığım tarihi en başta yazmayacak yani ilk yazdığı tarih textbox 1 e girilen tarihten 3 ay sonraki tarih yazacak iknicisi ise sadece o textbox1 e yazılan tarihten başayıp 3 er ay arttırarak 12 tane tarih değerini yazmasını istiyorum sizin kodda çok fazla tarih giriyor sanırım 50 tane falan rica etsem tekrar bakabilrmisiniz ben kendime uyarlamaya çalıştım ama yapamadım saygılarımla
 

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,503
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
25-12-2029
hocam

birde şu var o tarihleri alt alta yazacak yani ikinci bir tarih girdsiğimizde en son hücrenin kaldığı yerden başlayıp altına yazmaya başlayacak sürekli aynı hücrelere değil yani
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Bunu deneyin.
Kod:
Private Sub CommandButton1_Click()
Set s1 = Sheets("Sayfa1")
trh = CDate(TextBox1.Value)
s1.Cells(3, "d").Value = Format(DateSerial(Year(trh), Month(trh), Day(trh) + 90), "dd.mm.yyyy")
For i = 4 To 6
trh2 = s1.Cells(i - 1, "d")
s1.Cells(i, "d").Value = (DateSerial(Year(trh2), Month(trh2), Day(trh2) + 90))
Next i
End Sub
 

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,503
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
25-12-2029
hocam

Sorunumu ben anlatamadım galiba özür dileyerek tekrar anlatmaya çalışayım
textbox1 e yazdığım tarihten başlayıp 3 er ay artırarak 12 tane yani (en son 36 ay arttırmış olacak +3 ay, +6 ay, +12 ay, +15 ay.... şeklinde +36 ay olana kadar ) alt alta yazacak ve textbox1 e ikinci bir tarih girip kodu çalıştırdığımızda en son kaldığı hücreden başlayıp devam edecek sürekli aynı hücrelere değil yani tekrar bakabilme şansınız varmı acaba hocam
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,601
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Aşağıdaki şekilde denermisiniz.

Not: Örnek dosyanızda gün olarak 90 ve katlarını eklediğiniz için bende kodu aynı şekilde uyguladım. Eğer bu şekilde işinize yaramıyorsa ay bölümüne 3 ay ekletebiliriz.

Kod:
Private Sub CommandButton1_Click()
    Set S1 = Sheets("Sayfa1")
    Satır = IIf(S1.[D65536].End(3).Row = 1, 3, S1.[D65536].End(3).Row + 1)
    Tarih = CDate(Format(TextBox1, "dd.mm.yyyy"))
    For X = 1 To 12
    Tarih = DateSerial(Year(Tarih), Month(Tarih), Day(Tarih) + 90)
    S1.Cells(Satır, 4) = Tarih
    Satır = Satır + 1
    Next
End Sub
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Ekli dosyanızı inceleyiniz.
 

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,503
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
25-12-2029
şöyle yaptım hocam

sizin verdiğiniz kdlardan yola çıkarak
D = s1.[D65536].End(3).Row + 1

trh = CDate(TextBox4.Value)
TextBox4 = Format(DateSerial(Year(trh), Month(trh), Day(trh)), "dd.mm.yyyy")






s1.Cells(D, "d").Value = (DateSerial(Year(trh), Month(trh) + 3, Day(trh)))
s1.Cells(D + 1, "D").Value = (DateSerial(Year(trh), Month(trh) + 6, Day(trh)))
s1.Cells(D + 2, "D").Value = (DateSerial(Year(trh), Month(trh) + 9, Day(trh)))
s1.Cells(D + 3, "D").Value = (DateSerial(Year(trh), Month(trh) + 12, Day(trh)))
s1.Cells(D + 4, "D").Value = (DateSerial(Year(trh), Month(trh) + 15, Day(trh)))
s1.Cells(D + 5, "D").Value = (DateSerial(Year(trh), Month(trh) + 18, Day(trh)))
s1.Cells(D + 6, "D").Value = (DateSerial(Year(trh), Month(trh) + 21, Day(trh)))
s1.Cells(D + 7, "D").Value = (DateSerial(Year(trh), Month(trh) + 24, Day(trh)))
s1.Cells(D + 8, "D").Value = (DateSerial(Year(trh), Month(trh) + 27, Day(trh)))
s1.Cells(D + 9, "D").Value = (DateSerial(Year(trh), Month(trh) + 30, Day(trh)))
s1.Cells(D + 10, "D").Value = (DateSerial(Year(trh), Month(trh) + 33, Day(trh)))
s1.Cells(D + 11, "D").Value = (DateSerial(Year(trh), Month(trh) + 36, Day(trh)))
tabi acemi olduğumuz için uzun yolu denedim çok teşekkür ederim hocam sonuçta sizin kodlar bunlar
 

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,503
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Altın Üyelik Bitiş Tarihi
25-12-2029
ripek ve Costcontrol hocam

Her ikinizede göstermiş olduğunuz ilgi için teşekkür ederim Allah razı olsun ikinizdende sağolun
 
Üst