Döngü içinde tarihin ayını arttırmak

Katılım
20 Temmuz 2006
Mesajlar
171
Excel Vers. ve Dili
Office 2016 Tr
Merhaba,
UserForm üzerinde Texbox4'e yazılan tarihi, Textbox5'e yazılan sayı kadar, sayfamda ilk boş satırdan itibaren alt alta yazdırıyorum.
Ancak tarihlerin gün ve yıl sabit kalmak üzere, ay kısmını 1'er ay arttırarak yazdırmak istiyorum.

Örnek:
TexBox4 = 01.10.2024
TexBox5 = 4 ise;

A sütünundaki ilk boş satıra;
A14 = 01.10.2024
A15 = 01.11.2024
A16 = 01.12.2024
A17 = 01.01.2025

Şeklinde bir yardıma ihtiyacım var, saygılarımla.

Private Sub CommandButton1_Click()
Set s2 = Sheets("Sayfa1")
For i = 1 To TextBox5.Value
yeni = s2.Cells(Rows.Count, "A").End(3).Row + 1
s2.Cells(yeni, "A") = TextBox4.Value
Next i
End Sub
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,359
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,
dateadd fonksiyonunu kullanabilirsiniz.

İnceleyiniz.
Kod:
Public Sub tar()

Dim tar As Date

tar = Range("A1")

tar = DateAdd("m", 1, tar)

Range("b1") = tar

End Sub
 

Trilenium

Destek Ekibi
Destek Ekibi
Katılım
16 Eylül 2008
Mesajlar
1,099
Excel Vers. ve Dili
Microsoft Office 2019 English
Set s2 = Sheets("Sayfa1")
tarih = Format(TextBox4.Value, "mm/dd/yyyy")
satir = TextBox5.Value
For i = 1 To satir
yeni = s2.Cells(Rows.Count, "A").End(3).Row + 1

s2.Cells(yeni, "A") = DateAdd("m", i, tarih)

Next i
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba
Alternatif.
Kod:
Private Sub CommandButton1_Click()
    Dim Say As Long
    Dim Bak As Integer
    If Not IsDate(TextBox4.Text) Then
        MsgBox "Lütfen TexBox4'e geçerli bir tarih giriniz.", vbExclamation
        Exit Sub
    ElseIf Not IsNumeric(TextBox5.Text) Then
        MsgBox "Lütfen TexBox5'e rakam giriniz.", vbExclamation
        Exit Sub
    End If
    
    Say = Cells(Rows.Count, "A").End(xlUp).Row + 1
    For Bak = 0 To TextBox5.Value - 1
        Cells(Say + Bak, "A").Value = DateAdd("m", Bak, TextBox4.Value)
    Next
End Sub
 
Katılım
20 Temmuz 2006
Mesajlar
171
Excel Vers. ve Dili
Office 2016 Tr
Necdet hocam daha önce dateadd fonksiyonunu inceledim, ama döngü içinde beceremedim, ilginiz için teşekkür ederim, saygılarımla.
 
Katılım
20 Temmuz 2006
Mesajlar
171
Excel Vers. ve Dili
Office 2016 Tr
Set s2 = Sheets("Sayfa1")
tarih = Format(TextBox4.Value, "mm/dd/yyyy")
satir = TextBox5.Value
For i = 1 To satir
yeni = s2.Cells(Rows.Count, "A").End(3).Row + 1

s2.Cells(yeni, "A") = DateAdd("m", i, tarih)

Next i
Sayın Muzaffer, ilk tarihi de bir sonraki ay olarak değiştiriyor, TextBox4' girilen tarih değişmeden ilk boş hücreye yazılacak, ilginiz için teşekkür ederim, saygılarımla.
 
Katılım
20 Temmuz 2006
Mesajlar
171
Excel Vers. ve Dili
Office 2016 Tr
Merhaba
Alternatif.
Kod:
Private Sub CommandButton1_Click()
    Dim Say As Long
    Dim Bak As Integer
    If Not IsDate(TextBox4.Text) Then
        MsgBox "Lütfen TexBox4'e geçerli bir tarih giriniz.", vbExclamation
        Exit Sub
    ElseIf Not IsNumeric(TextBox5.Text) Then
        MsgBox "Lütfen TexBox5'e rakam giriniz.", vbExclamation
        Exit Sub
    End If
   
    Say = Cells(Rows.Count, "A").End(xlUp).Row + 1
    For Bak = 0 To TextBox5.Value - 1
        Cells(Say + Bak, "A").Value = DateAdd("m", Bak, TextBox4.Value)
    Next
End Sub
Sayın Muzaffer, ilgi ve yardımınız için çok teşekkür ederim, denedim. İstediğim gibi olmuş, çok teşekkür ederim, saygılarımla.
 
Üst