İki tarih aralığındaki pazarları saymasın

Katılım
21 Mart 2011
Mesajlar
22
Excel Vers. ve Dili
2007
Altın Üyelik Bitiş Tarihi
12.07.2020
Tamsayı((1+b1-a1-haftanıngünü(b1))/7)
teşekkü ederim ilgin için ama sizin verdiğiniz yanlışmı yaptım bilmiyorum ama
02/08/2015 16/08/2015 yaptığım zaman sonuç ikin verdi.
ben sadece a1 ve b1 gerekli tarihleri yazdım ekstre birşey daha mı yazmam gerekirdir anlayamadım
 
Katılım
21 Mart 2011
Mesajlar
22
Excel Vers. ve Dili
2007
Altın Üyelik Bitiş Tarihi
12.07.2020
vba kodlama ile;
Kod:
Sub pazar59()
Dim tarih As Date, say As Long
Dim baslangic As Date, bitis As Date
baslangic = Range("A1").Value
bitis = Range("B1").Value
For tarih = baslangic To bitis
    If VBA.Weekday(tarih, 2) < 7 Then say = say + 1
Next tarih
MsgBox "Pazar hariç gün sayısı : " & say
End Sub
elinize sağlık rakamsal olarak doğru verdi peki bunu c1 sutünuna nasıl ekleyebilirim

yani b1-a1=c1 verirse sorunum çözülmüş olacak
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,239
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
elinize sağlık rakamsal olarak doğru verdi peki bunu c1 sutünuna nasıl ekleyebilirim

yani b1-a1=c1 verirse sorunum çözülmüş olacak
Kırmızı satırı diğer satırın yerine koydum.:cool:
Kod:
Sub pazar59()
Dim tarih As Date, say As Long
Dim baslangic As Date, bitis As Date
baslangic = Range("A1").Value
bitis = Range("B1").Value
For tarih = baslangic To bitis
    If VBA.Weekday(tarih, 2) < 7 Then say = say + 1
Next tarih
[B][COLOR="Red"]range("C1").value = say[/COLOR][/B]
End Sub
 
Katılım
21 Mart 2011
Mesajlar
22
Excel Vers. ve Dili
2007
Altın Üyelik Bitiş Tarihi
12.07.2020
Çok teşekkür ederim ellerine sağlık çok oluyorum ama
diyelimki benim isim listem var bu kişilerin karşılarına izin başlangıç ve bitiş tarihlerini yazacağım

örnek olarak B4 te isim-soyisim C4 te ilk tarih D4 te son tarih E4 te toplam izin
devamında F4 te ilk tarih G4 te son tarih H4 te toplam izin gibi bunu nasıl uygulayabilirim
sizin yaptığınız sadece A1-B1-C1 OLUYOR çünkü ben size öyle tarif etmiştim.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,239
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Çok teşekkür ederim ellerine sağlık çok oluyorum ama
diyelimki benim isim listem var bu kişilerin karşılarına izin başlangıç ve bitiş tarihlerini yazacağım

örnek olarak B4 te isim-soyisim C4 te ilk tarih D4 te son tarih E4 te toplam izin
devamında F4 te ilk tarih G4 te son tarih H4 te toplam izin gibi bunu nasıl uygulayabilirim
sizin yaptığınız sadece A1-B1-C1 OLUYOR çünkü ben size öyle tarif etmiştim.
Örnek dosya ekleyiniz.:cool:
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,468
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Çoklu kontroller için yazılan kodu fonksiyona dönüştürmek daha akıllıca olacaktır.

Dosyanıza boş bir modül ekleyin.
Modül içine aşağıdaki kodu uygulayın.

Kod:
Function İŞ_GÜNÜ_SAY(İlk_Tarih, Son_Tarih)
    Rem Pazar günü hariç tüm günler işgünü olarak sayılır...
    For Tarih = İlk_Tarih To Son_Tarih
        If Tarih <> 0 Then
            If WorksheetFunction.Weekday(Tarih, 2) < 7 Then Say = Say + 1
        End If
    Next
    İŞ_GÜNÜ_SAY = Say
End Function
Daha sonra excel sayfanıza dönün ve E4 hücresine aşağıdaki formülü uygulayın. İhtiyacınız kadar alt hücrelere sürükleyin.

Kod:
=İŞ_GÜNÜ_SAY(C4;D4)
 
Katılım
21 Mart 2011
Mesajlar
22
Excel Vers. ve Dili
2007
Altın Üyelik Bitiş Tarihi
12.07.2020
korhan bey çok teşekkür ederim zar zor denedim oldu çok ufak sapma var sanki ama problem değil
asıl problem dün den beri vba da bir bozukluk var şöyle ki önceden makro oluşturduğumda vba girdiğimde solda project leri sağda da kod ları görüyordum ama şuan tek bir sayfada kodlar açılıyor ne yaptıysam olmadı resimdeki gibi yapamadım
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,468
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kod editörünü açın.
CTRL+R tuşuna basın.
F4 tuşuna basın.

Bu işlemlerden sonra ekranların tekrar açılması gerekiyor.

Fonksiyonda ne gibi bir sapma var. Açıklarsanız düzeltmeye çalışırız.
 
Katılım
21 Mart 2011
Mesajlar
22
Excel Vers. ve Dili
2007
Altın Üyelik Bitiş Tarihi
12.07.2020
Kod editörünü açın.
CTRL+R tuşuna basın.
F4 tuşuna basın.

Bu işlemlerden sonra ekranların tekrar açılması gerekiyor.

Fonksiyonda ne gibi bir sapma var. Açıklarsanız düzeltmeye çalışırız.
özür dilerim ben yanlış hesaplamışım sapma yok elinize sağlık tekrardan.

resmi tatil yada bayram tatillerine denk geldiği zaman ne yapabiliriz?
 
Katılım
21 Mart 2011
Mesajlar
22
Excel Vers. ve Dili
2007
Altın Üyelik Bitiş Tarihi
12.07.2020
teşekkür ederim paylaşım için cahilliğimi mazur görün yaptığınız çalışmayı korhan bey in yapmış olduğu makroya nasıl entegre edebilirim
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,468
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyin...

Z1:Z20 aralığına sorguladığınız yıla ait resmi tatil günlerini yazın.

Kod:
=İŞ_GÜNÜ_SAY(A1;A2;Z1:Z20)
Kod:
Function İŞ_GÜNÜ_SAY(İlk_Tarih, Son_Tarih, Resmi_Tatiller)
    Rem Pazar günü ve resmi tatiller hariç tüm günler işgünü olarak sayılır...
    For Tarih = İlk_Tarih To Son_Tarih
        If Tarih <> 0 Then
            If WorksheetFunction.Weekday(Tarih, 2) < 7 Then
                If WorksheetFunction.CountIf(Resmi_Tatiller, Tarih) = 0 Then
                    Say = Say + 1
                End If
            End If
        End If
    Next
    İŞ_GÜNÜ_SAY = Say
End Function
 

Ekli dosyalar

Üst