Soru Haftaiçi ve Haftasonu Tarihlerini Ayrı Ayrı Getirme

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
Excel Vers. ve Dili
2016 64 TR
Altın Üyelik Bitiş Tarihi
29-10-2026
Herkese Merhaba

Ekteki dosyamda Tarih_Hazırla sayfasında Sayfayı Hazırla Butonuna basınca N2 hücresindeki yıl ile M2 hücresindeki ayın günleri için iki işlem yapılacak

1. İşlem:
Hafta içi günleri (Pazartesi Cuma arası) B4'ten B34'e kadar yazılacak


2. İşlem:
Haftasonu günleri (Cumartesi Pazar arası) B40'tan B49' e kadar yazılacak


Sadece M2 ve N2 deki yıl ve aya ait günler gelecek.


Yardım edebilecek olan varsa çok sevinirim.
 

Ekli dosyalar

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,784
Excel Vers. ve Dili
Microsoft 365 Tr-64
Dosyanıza ufak bir ekleme yaptım. Veri sayfasında C sütununa resmi tatillerin girilmesi gerekiyor.
Milli bayram ve özel günlerden oluşan resmi tatilleri sabit olarak ben girdim
D sütununda seçtiğiniz yıla göre tekrar hesaplanıyor
C sütununda diğer tatil günlerini her sene girmelisiniz

Kullandığımız Kodlar
C++:
Sub TarihSırala()
Dim Holidays As Range
Yıl = Range("N2")
Ay = WorksheetFunction.Match(Range("M2"), Worksheets("VERİ").Range("B2:B13"), 0)
GünSayısı = Day(DateSerial(Yıl, Ay + 1, 0))
k1 = 4
k2 = 40
Set Holidays = Worksheets("VERİ").Range("D2").Resize(WorksheetFunction.CountA(Worksheets("VERİ").Range("D:D")) - 1, 1)
For i = 1 To GünSayısı
    Ndate = DateSerial(Yıl, Ay, i)
    If WorksheetFunction.NetworkDays(Ndate, Ndate, Holidays) = 1 Then
        Range("B" & k1) = Ndate
        k1 = k1 + 1
    Else
        Range("B" & k2) = Ndate
        k2 = k2 + 1
    End If
Next i
End Sub
 

Ekli dosyalar

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
Excel Vers. ve Dili
2016 64 TR
Altın Üyelik Bitiş Tarihi
29-10-2026
Dosyanıza ufak bir ekleme yaptım. Veri sayfasında C sütununa resmi tatillerin girilmesi gerekiyor.
Milli bayram ve özel günlerden oluşan resmi tatilleri sabit olarak ben girdim
D sütununda seçtiğiniz yıla göre tekrar hesaplanıyor
C sütununda diğer tatil günlerini her sene girmelisiniz

Kullandığımız Kodlar
C++:
Sub TarihSırala()
Dim Holidays As Range
Yıl = Range("N2")
Ay = WorksheetFunction.Match(Range("M2"), Worksheets("VERİ").Range("B2:B13"), 0)
GünSayısı = Day(DateSerial(Yıl, Ay + 1, 0))
k1 = 4
k2 = 40
Set Holidays = Worksheets("VERİ").Range("D2").Resize(WorksheetFunction.CountA(Worksheets("VERİ").Range("D:D")) - 1, 1)
For i = 1 To GünSayısı
    Ndate = DateSerial(Yıl, Ay, i)
    If WorksheetFunction.NetworkDays(Ndate, Ndate, Holidays) = 1 Then
        Range("B" & k1) = Ndate
        k1 = k1 + 1
    Else
        Range("B" & k2) = Ndate
        k2 = k2 + 1
    End If
Next i
End Sub
Sayın @NextLevel Hocam elinize emeğinize sağlık. Kod çalıştı .
 
Üst