2 Tarih aralığını döngüye sokmak

Katılım
12 Aralık 2020
Mesajlar
74
Excel Vers. ve Dili
2016 tr
Merhaba

Elimde 20220225 formatında bir ilk tarih var 20220305 formatındada bi son tarih bu iki tarih arasını döngüye sokup a sütununa yazdıracak bi formül varmıdır ?

örneğin

20220227
20220228
20220301

Tarih formatı yıl ay gün şeklindedir
 

Cengiz Demir

Altın Üye
Katılım
29 Haziran 2018
Mesajlar
605
Excel Vers. ve Dili
Office 365 TR (32 Bit)
Altın Üyelik Bitiş Tarihi
05-04-2025
Çok fazla detay vermemişsiniz.

Bu kod inputbox ile ilk ve son tarihi sorup; A1 den itiabaren aşağıya doğru birer arttırarak sizin istediğiniz formatta tarihleri yazıyor.

İlk ve son tarihi belirli hücrelerden alınacaksa ve yazdırılacak bölge farklıysa kodları buna göre düzenlersiniz.

C#:
Dim Trh1 As Date
Dim Trh1 As Date
Dim Trh2 As Date
Dim ilk As String
Dim son As String
Dim Say As Long

Sub Tarih_Yaz()

ilk = Application.InputBox("İlk Tarih", 1)

son = Application.InputBox("Son Tarih", 1)

Trh1 = Left(ilk, 4) & "." & Mid(ilk, 5, 2) & "." & Right(ilk, 2)
Trh2 = Left(son, 4) & "." & Mid(son, 5, 2) & "." & Right(son, 2)

Say = Trh2 - Trh1

For x = 0 To Say
    
    Trh = Trh1 + x

    Cells(x + 1, 1) = Year(Trh) & Format(Month(Trh), "00") & Format(Day(Trh), "00")

Next x

End Sub
 

Necdet

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

Birinci Tarihin C1, ikinci tarihin D1 hücresinde olduğu varsayılarak :

Aşağıdaki kodları deneyin ve kendinize uyarlayın.

Kod:
Sub Yaz()

    Dim Tar1    As Date, _
        Tar2    As Date, _
        i       As Long
   
    Tar1 = DateSerial(Left(Range("C1"), 4), Mid(Range("C1"), 5, 2), Right(Range("C1"), 2))
    Tar2 = DateSerial(Left(Range("D1"), 4), Mid(Range("D1"), 5, 2), Right(Range("D1"), 2))
   
    For Tar1 = Tar1 To Tar2
        i = i + 1
        Cells(i, "A") = Format(Tar1, "yyyymmdd")
    Next Tar1
   
End Sub
Not : Geç kalmışım :)
 

Cengiz Demir

Altın Üye
Katılım
29 Haziran 2018
Mesajlar
605
Excel Vers. ve Dili
Office 365 TR (32 Bit)
Altın Üyelik Bitiş Tarihi
05-04-2025
Üstad sizin kodlar daha sade ve profesyonelce.
Hani biz 10 kulaç atıp da hedefe giderken, siz 2 kulaçta işi bitiriyorsunuz :D

Merhaba,

Birinci Tarihin C1, ikinci tarihin D1 hücresinde olduğu varsayılarak :

Aşağıdaki kodları deneyin ve kendinize uyarlayın.

Kod:
Sub Yaz()

    Dim Tar1    As Date, _
        Tar2    As Date, _
        i       As Long
 
    Tar1 = DateSerial(Left(Range("C1"), 4), Mid(Range("C1"), 5, 2), Right(Range("C1"), 2))
    Tar2 = DateSerial(Left(Range("D1"), 4), Mid(Range("D1"), 5, 2), Right(Range("D1"), 2))
 
    For Tar1 = Tar1 To Tar2
        i = i + 1
        Cells(i, "A") = Format(Tar1, "yyyymmdd")
    Next Tar1
 
End Sub
Not : Geç kalmışım :)
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,371
Excel Vers. ve Dili
Ofis 365 Türkçe
Üstad sizin kodlar daha sade ve profesyonelce.
Hani biz 10 kulaç atıp da hedefe giderken, siz 2 kulaçta işi bitiriyorsunuz :D
Merhaba,

Siz baya işin içine InputBox'ları sokunca işler doğal olarak uzuyor. Ben kestirmeden gittim :)
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
Merhaba,

Makro olarak sormuş ama arkadaş formül istemiş. Ben de formül ile çözüm önereyim.
C1 ve D1 hücrelerinde tarih varsa, A1 hücresine formülü yazıp sütuna kopyalayın.

Kod:
=EĞER(TARİH(SOLDAN($C$1;4);PARÇAAL($C$1;5;2);SAĞDAN($C$1;2))+SATIR()-1>TARİH(SOLDAN($D$1;4);PARÇAAL($D$1;5;2);SAĞDAN($D$1;2));"";TARİH(SOLDAN($C$1;4);PARÇAAL($C$1;5;2);SAĞDAN($C$1;2))+SATIR()-1)
 

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,900
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Süleyman Bey,

Tarih fonksiyonu yerine

METNEÇEVİR($C$1;"0000-00-00") kullanmakta pratik olabilir.
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
Merhaba

Üstat Ali Beyin önerisi ile alternatif formül.
Kod:
=EĞER(METNEÇEVİR($C$1;"0000-00-00")+SATIR()-1>METNEÇEVİR($D$1;"0000-00-00");"";METNEÇEVİR($C$1;"0000-00-00")+SATIR()-1)
Açıkçası METNEÇEYİR kullanmayı ben de düşünmüştüm ama tarihi metin olarak algılar diye denememiştim.
Ali bey, herzamanki gibi yine yol gösterdi.
 
Üst