İzin Tarihleri Arasındaki Resmi Tatiller

iplikci_80

Altın Üye
Katılım
29 Kasım 2007
Mesajlar
1,110
Excel Vers. ve Dili
excel 2007
Altın Üyelik Bitiş Tarihi
07-03-2026
Arkadaşlar merhabalar yapmak istediğim şey EK 'te gönderdiğim çalışmada da belirtmeye çalıştığım üzere izin tarihleri arasında bulunan resmi tatiller var ise bunları izne dahil ettirmek istiyorum. Bu konuda yardımlarınız rica ediyorum.
 

Ekli dosyalar

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,636
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Merhaba,

İşe başlama tarihinden izin başlangıcını çıkartırsanız istediğiniz olmuyor mu?

Resmi tatilleri sıradan günler gibi düşünmüşsünüz, özel bir formüle gerek yok diye düşünüyorum.
 

iplikci_80

Altın Üye
Katılım
29 Kasım 2007
Mesajlar
1,110
Excel Vers. ve Dili
excel 2007
Altın Üyelik Bitiş Tarihi
07-03-2026
Sayın kuvari öncelikle ilginize çok teşekkür ederim. Benim yapmak istediğim şey izin gün sayısını bulmak değil izinden sonraki başlangıç tarihini bulmak.
 

Emir Hüseyin Çoban

Destek Ekibi
Destek Ekibi
Katılım
11 Ağustos 2008
Mesajlar
5,892
Excel Vers. ve Dili
Office 2013 Tr - Win10 x64
. . .

İzin başlangıç (C70) ve Bitiş (C72) tarihlerini girdikten sonra kodları çalıştırın.

Kod:
Sub kod()
    
    Dim bas As Long, bit As Long
    bas = Range("C70")
    bit = Range("C72")
    
    For i = bas To bit
        If WorksheetFunction.CountIf(Range("E4:E63"), i) <> 0 Then
            say = say + 1
        End If
    Next i
    
    If WorksheetFunction.CountIf(Range("E4:E63"), bit) > 0 Then
        say2 = -1
    End If
    
    For a = bit To bit + 100
        If WorksheetFunction.CountIf(Range("E4:E63"), a) = 0 Then
            Exit For
        Else
            say2 = say2 + 1
        End If
    Next a

    Range("C73") = say + say2 & " Gün"
    Range("C74") = Range("C72") + (say + say2)
    
End Sub
. . .
 

Merhum İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,094
Excel Vers. ve Dili
Excel, 365 - İngilizce
Arkadaşlar merhabalar yapmak istediğim şey EK 'te gönderdiğim çalışmada da belirtmeye çalıştığım üzere izin tarihleri arasında bulunan resmi tatiller var ise bunları izne dahil ettirmek istiyorum. Bu konuda yardımlarınız rica ediyorum.
.

Dosyanız ekte.


.
 

Ekli dosyalar

iplikci_80

Altın Üye
Katılım
29 Kasım 2007
Mesajlar
1,110
Excel Vers. ve Dili
excel 2007
Altın Üyelik Bitiş Tarihi
07-03-2026
İdris Bey ilginize çok teşekkür ederim. Rica etsem formülü Türkçe hali ile düzeltebilir miyiz lütfen.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,800
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Kodlar örnek dosyanıza göre yazılmıştır.

makro ile yapılmış kod:

Kod:
Sub kod1()

deg1 = Cells(70, "c").Value
deg2 = Cells(71, "c").Value

If deg1 = "" Or deg2 = "" Then
MsgBox "veriler boş olmamalı"
Exit Sub
End If

deg1 = CDate(deg1)


If IsDate(deg1) = False Then
MsgBox "izin başlangıcı tarih olmalı"
Exit Sub
End If

If IsNumeric(deg2) = False Then
MsgBox "izin süresi sayı olmalı"
Exit Sub
End If


aranan = deg1 + deg2

For i = 4 To 63
bulunan = CDate(Cells(i, "e").Value)
If aranan = bulunan Then
aranan = aranan + 1
End If
Next

Cells(74, "c").Value = aranan
End Sub
kullanıcı tanımlı fonksiyon

Kod:
Function ise_baslama_tarihi(izin_baslangic_tarihi, izin_gun_sayisi)


izin_baslangic_tarihi = CDate(izin_baslangic_tarihi)
izin_gun_sayisi = CDate(izin_gun_sayisi)

If izin_baslangic_tarihi = "" Or izin_gun_sayisi = "" Then
ise_baslama_tarihi = ""
Exit Function
ElseIf IsDate(izin_baslangic_tarihi) = False Or IsDate(izin_gun_sayisi) = False Then
ise_baslama_tarihi = ""
Exit Function
End If

aranan = CDate(izin_baslangic_tarihi + izin_gun_sayisi)

For i = 4 To 63
bulunan = CDate(Cells(i, "e").Value)
If aranan = bulunan Then
aranan = aranan + 1
End If
Next

ise_baslama_tarihi = CDate(aranan)

End Function

not :
kontroller olmasa kot daha kısa olabilirdi.
 
Üst