• DİKKAT

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

İzin Tarihleri Arasındaki Resmi Tatiller

Katılım
29 Kasım 2007
Mesajlar
1,110
Excel Vers. ve Dili
excel 2007
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

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.
 
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.
 
. . .

İ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

. . .
 
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

İdris Bey ilginize çok teşekkür ederim. Rica etsem formülü Türkçe hali ile düzeltebilir miyiz lütfen.
 
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.
 
Geri
Üst