• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Yıl ve Ay seçildiğinde İş Günlerinin Altalta tarih olarak sıralanması

Katılım
22 Mayıs 2009
Mesajlar
1,017
Excel Vers. ve Dili
Office 2003
Uzmanlarım;
Ekli dosya da J1 hücresinde Yılı, J2 Hücresinde ayı seçtğimiz zaman A10 : A32 hücrelerine seçilen yıl ve aya göre sadece iş günlerinin tarihlerini bir buton ile getirebilir miyiz?
Yardımcı olabilir misiniz? Teşekkür Ederim
 

Ekli dosyalar

Selamlar,

Aşağıdaki kodu denermisiniz.

Kod:
Option Explicit
 
Sub İŞ_GÜNLERİ()
    Dim Ay As Byte, İlk_Gün As Date, Son_Gün As Date, Tarih As Date, Satır As Byte
    
    Range("A10:G32").ClearContents
    Satır = 10
    
    Select Case Range("J2")
        Case Is = "Ocak": Ay = 1
        Case Is = "Şubat": Ay = 2
        Case Is = "Mart": Ay = 3
        Case Is = "Nisan": Ay = 4
        Case Is = "Mayıs": Ay = 5
        Case Is = "Haziran": Ay = 6
        Case Is = "Temmuz": Ay = 7
        Case Is = "Ağustos": Ay = 8
        Case Is = "Eylül": Ay = 9
        Case Is = "Ekim": Ay = 10
        Case Is = "Kasım": Ay = 11
        Case Is = "Aralık": Ay = 12
    End Select
    
    İlk_Gün = DateSerial(Range("J1"), Ay, 1)
    Son_Gün = DateSerial(Range("J1"), Ay + 1, 0)
    
    For Tarih = İlk_Gün To Son_Gün
        If Weekday(Tarih, vbMonday) < 6 Then
            Cells(Satır, 1) = Tarih
            Satır = Satır + 1
        End If
    Next
    
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Syn. Yesilyurtlu ;
Alternatif olarak fonksiyon ile bir örnek yapmaya çalıştım. Ekteki dosyayı inceleyin.

A10 Hücresinde
Kod:
=EĞER(İŞGÜNÜ(J2&"."&J1;5;1)-İŞGÜNÜ(J2&"."&J1;0;1)=7;İŞGÜNÜ(J2&"."&J1;0;1);İŞGÜNÜ(J2&"."&J1;1;1))
A11 Hücresinde
Kod:
=İŞGÜNÜ(A10;1;1)
Fonksiyonu var A11 hücresi seçilip A32 ye kadar çekilerek çoğaltıldı.
 

Ekli dosyalar

Sayın yesilyurtlu;


İyi pazarlar...Emek ve katkıda bulunan herkese içten teşekkürler..

Sayın Korhan Ayhan'ın kodlarını nasıl kullanacağımı bilmiyorum.

Sizlerden makro kodlu çözümlü dosyayı siteye eklemenizi rica edebilir miyim?

Teşekkürler..
 
Son düzenleme:
Sayın ynmcany;

İyi pazarlar..

İnceliğiniz ve katkınız için teşekkürler. İyi ki varsınız.

Sevgiler..
 
korhan hocam yukardaki kodları kullandığımda. haftasonlarını çıkarıyor burası tamam ama. yıla 2012 girdiğimde 2010 çıkarıyor. girmediğimde ise 1999 yılına ait ayı getiriyor. ve sadece 12. aya ait işgünlerini listeliyor.
ofis 2010 kullanıyorum şuan. kontrol edebilirmisiniz mümkünse.
 
Merhaba,

J1 hücresine 2012 yazın.
J2 hücresine Ocak yazın ve kodu çalıştırın.

Ay isimlerini aynen kodda geçen şekli ile (büyük-küçük harf) yazın.

Büyük-küçük harf duyarsız olsun derseniz aşağıdaki kodu kullanabilirsiniz.

Kod:
Option Explicit
 
Sub İŞ_GÜNLERİ()
    Dim Ay As Byte, İlk_Gün As Date, Son_Gün As Date, Tarih As Date, Satır As Byte
    
    Range("A10:G32").ClearContents
    Satır = 10
    
    Select Case UCase(Replace(Replace(Range("J2"), "i", "İ"), "ı", "I"))
        Case Is = "OCAK": Ay = 1
        Case Is = "ŞUBAT": Ay = 2
        Case Is = "MART": Ay = 3
        Case Is = "NİSAN": Ay = 4
        Case Is = "MAYIS": Ay = 5
        Case Is = "HAZİRAN": Ay = 6
        Case Is = "TEMMUZ": Ay = 7
        Case Is = "AĞUSTOS": Ay = 8
        Case Is = "EYLÜL": Ay = 9
        Case Is = "EKİM": Ay = 10
        Case Is = "KASIM": Ay = 11
        Case Is = "ARALIK": Ay = 12
    End Select
    
    İlk_Gün = DateSerial(Range("J1"), Ay, 1)
    Son_Gün = DateSerial(Range("J1"), Ay + 1, 0)
    
    For Tarih = İlk_Gün To Son_Gün
        If Weekday(Tarih, vbMonday) < 6 Then
            Cells(Satır, 1) = Tarih
            Satır = Satır + 1
        End If
    Next
    
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
teşekkürler hocam çok sağolun.
 
Geri
Üst