Haftanın belirli günlerini yazdırma

pmbpanter

Altın Üye
Katılım
1 Haziran 2005
Mesajlar
94
Excel Vers. ve Dili
Office 365
Altın Üyelik Bitiş Tarihi
26-11-2028
Merhaba,
Örnekte detaylı olarak açıkladığım konuda yardıma ihtiyacım var. Kısaca anlatmak gerekirse iki tarih arasında haftanın belirttiğim günlerindeki tarihleri otomatik olarak yazdırsın istiyorum. Forumda araştırdığım kadarıyla "Eleman - Choose" fonksiyonu ile bu duruma değişik çözüm bulan ustalar olmuş fakat bir türlü "Eleman" fonksiyonunu kendi örneğime uygulayamadım.
 

Ekli dosyalar

Katılım
31 Ocak 2012
Mesajlar
2,430
Excel Vers. ve Dili
Excel 2010 , Türkçe
Altın Üyelik Bitiş Tarihi
24.01.2019
selam,
dosyanıza bakmadım. Yararlı olacağını düşündüğüm , daha önceden hazırladığım bir dokumanı paylaşmak istedim.
(Not : Hesaplamalarda çok çeşitli formüller kullanılabilir tabi ki..)
 
Son düzenleme:

pmbpanter

Altın Üye
Katılım
1 Haziran 2005
Mesajlar
94
Excel Vers. ve Dili
Office 365
Altın Üyelik Bitiş Tarihi
26-11-2028
selam,
dosyanıza bakmadım. Yararlı olacağını düşündüğüm , daha önceden hazırladığım bir dokumanı paylaşmak istedim.
(Not : Hesaplamalarda çok çeşitli formüller kullanılabilir tabi ki..)
Merhaba, öncelikle ilgilendiğiniz için çok teşekkürler. Örnek dosyanızı inceledim fakat maalesef benim ihtiyacımı karşılamıyor. Sizin vermiş olduğunuz örnek haftanın bir tek günü için hesaplama yapıyor, ben ise aynı anda bir kaç günü de yazdırabilmek istiyorum.

İyi günler dilerim.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Örnek dosyanızdaki tarihlerde hata var gibi. Listeleme yılında 2016 yazdığınız halde sonuçlarda 2006 yıllarını listelemişsiniz. Yine de anladığım kadarıyla aşağıdaki kodları bir modüle kopyalayıp denerseniz istediğinizi yapacağını düşünüyorum:
Kod:
Sub tarihler()
baş = [A3].Value
son = [B3].Value

For i = baş To son
    For j = 1 To 7
        If WorksheetFunction.Weekday(i, 2) = j And WorksheetFunction.CountIf([D3:J3], j) > 0 Then
            yeni = Cells(Rows.Count, "L").End(3).Row + 1
            Cells(yeni, "L") = Format(i, "dd/mm/yyyy dddd")
        End If
    Next
Next
End Sub
 

pmbpanter

Altın Üye
Katılım
1 Haziran 2005
Mesajlar
94
Excel Vers. ve Dili
Office 365
Altın Üyelik Bitiş Tarihi
26-11-2028
Örnek dosyanızdaki tarihlerde hata var gibi. Listeleme yılında 2016 yazdığınız halde sonuçlarda 2006 yıllarını listelemişsiniz. Yine de anladığım kadarıyla aşağıdaki kodları bir modüle kopyalayıp denerseniz istediğinizi yapacağını düşünüyorum:
Kod:
Sub tarihler()
baş = [A3].Value
son = [B3].Value

For i = baş To son
    For j = 1 To 7
        If WorksheetFunction.Weekday(i, 2) = j And WorksheetFunction.CountIf([D3:J3], j) > 0 Then
            yeni = Cells(Rows.Count, "L").End(3).Row + 1
            Cells(yeni, "L") = Format(i, "dd/mm/yyyy dddd")
        End If
    Next
Next
End Sub
Yusuf Bey,
Öncelikle ilgilendiğiniz için teşekkürler... Evet sizin de belirtmiş olduğunuz gibi dosya tarihlerini hatalı yazmışım ama siz düzeltmişsiniz. Bunun için de ayrıca teşekkürler... Yazdığınız kod yaptığım ufak bir revizyon ile tamamen işimi gördü... Ellerinize sağlık...

Sevgi ve saygılar...
 

pmbpanter

Altın Üye
Katılım
1 Haziran 2005
Mesajlar
94
Excel Vers. ve Dili
Office 365
Altın Üyelik Bitiş Tarihi
26-11-2028
İdris Bey ve Sakman26 formül ile alternatifini de öğrenmek bonus oldu..
Çok şeşekkürler...
 
Üst