Yıllık izin tek sayfada tek kişi hesaplamak ?

Katılım
17 Nisan 2006
Mesajlar
228
Selamlar

Tek kişi için bir sayfada izin hesabı yaptırmak istiyorum ama yardımcı olabilirmisiniz ?
İlgili notlar ekteki dosyadadır.

Not: Lütfen zip rar olarak eklemeyiniz, direkt xls dosya ekleyiniz.
 

Ekli dosyalar

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,371
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Dosyayı inceleyiniz, umarım olmuştur.
 

Ekli dosyalar

Katılım
17 Nisan 2006
Mesajlar
228
Giriş tarihininin yılını 2002 yazarsak 2010 yılına kadar gidiyor göyle olmamalı. Bugün itibariyle 2010 yılının yada 2009 hakedilmemişse onları yazmayacak. Kaç yıl hakedilmişse o kadar satırı eklyecek yada çoğaltacak.
giriş yılını 1994 yaparsak da 2003de kalıyor. Böyle oluncada satır eklemeli
Teşekkürler
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,371
Excel Vers. ve Dili
Ofis 365 Türkçe
eee işin o tarafını bilmeyince sadece sizin yaptığınızı uygulamaya çalıştım.

Ve hala iznin hangi tarihte hak edildiğini anlamadım. Bugünün tarihi mi yoksa içinde bulunulan yıl mı dikkate alınır?

Bu işleri bilen bir arkadaş size mutlaka yardımcı olur.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
formül olması şartmı?
bugün büroda yaparım.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
inceleyiniz.
Birde 15 yıl dan sonraki izin süresi ne kadardı ben unuttum. benim hatırladığım 14,21,30 diye gidiyordu. kırmızı değerleri ona göre revize ediniz.

bir module
Kod:
Sub subİzinHakedisleri()
Dim Csf As Excel.Worksheet:     Set Csf = ActiveSheet
Dim dtİseGiris As Date, dtBugün As Date
With Csf
If Not IsDate(.Cells(3, 6).Value) Then GoTo son
dtİseGiris = .Cells(3, 6).Value
dtBugün = CDate(Format(Now, "dd.mm.yyyy"))
geçenyıl = Year(dtBugün) - Year(dtİseGiris)
satır = 6
[COLOR=Green]'Böyle daha güzel oldu yazarken dikkat etmemişim ;)[/COLOR]
  with .Range(.Cells(7, 5), .Cells(50, 8)) 
     .value = Empty
     .Interior.Color = xlNone
  end with
  For i = 1 To geçenyıl
    dtKars = CDate(Day(dtİseGiris) & "/" & Month(dtİseGiris) & "/" & Year(dtİseGiris) + i)
    If dtKars <= dtBugün Then
    satır = satır + 1
      .Cells(satır, 5).Value = (Year(dtİseGiris) + i) - 1
      .Cells(satır, 6).Value = dtKars
      .Cells(satır, 7).Value = i
      If i < 6 Then
        .Cells(satır, 8).Value =[COLOR=Red] 14[/COLOR]
      ElseIf i < 15 Then
        .Cells(satır, 8).Value =[COLOR=Red] 28[/COLOR]
      ElseIf i >= 15 Then
        .Cells(satır, 8).Value = 28 '[COLOR=Red]56[/COLOR] 'iş kanuna göre 26 günden az olamaz diyor. 28 olabilir.
      End If
    .Range(.Cells(satır, 5), .Cells(satır, 8)).Interior.Color = vbYellow
    End If
  Next i
End With 'csf
son:
Set Csf = Nothing
End Sub
Thisworkbook modulüne
Kod:
Private Sub Workbook_Open()
For i = 1 To Worksheets.Count
  Call subİzinHakedisleri
Next i
End Sub

'Private Sub Workbook_SheetActivate(ByVal Sh As Object)
'Call subİzinHakedisleri
'End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Intersect(Target, [F3]) Is Nothing Then Exit Sub
Call subİzinHakedisleri
End Sub
 

Ekli dosyalar

Son düzenleme:
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
iş kanununundan
Yıllık ücretli izin hakkı ve izin süreleri

MADDE 53. - İşyerinde işe başladığı günden itibaren, deneme süresi de içinde olmak üzere, en az bir yıl çalışmış olan işçilere yıllık ücretli izin verilir.

Yıllık ücretli izin hakkından vazgeçilemez.

Niteliklerinden ötürü bir yıldan az süren mevsimlik veya kampanya işlerinde çalışanlara bu Kanunun yıllık ücretli izinlere ilişkin hükümleri uygulanmaz.

İşçilere verilecek yıllık ücretli izin süresi, hizmet süresi;

a) Bir yıldan beş yıla kadar (beş yıl dahil) olanlara ondört günden,

b) Beş yıldan fazla onbeş yıldan az olanlara yirmi günden,

c) Onbeş yıl (dahil) ve daha fazla olanlara yirmialtı günden,

Az olamaz.

Ancak onsekiz ve daha küçük yaştaki işçilerle elli ve daha yukarı yaştaki işçilere verilecek yıllık ücretli izin süresi yirmi günden az olamaz.

Yıllık izin süreleri iş sözleşmeleri ve toplu iş sözleşmeleri ile artırılabilir.

Yıllık ücretli izne hak kazanma ve izni kullanma dönemi
http://www.alomaliye.com/bilgi_ucretli_izin.htm


ayrıca
Yıllık ücretli iznin uygulanması

MADDE 56. - Yıllık ücretli izin işveren tarafından bölünemez.

Bu iznin 53 üncü maddede gösterilen süreler içinde işveren tarafından sürekli bir şekilde verilmesi zorunludur.

Ancak, 53 üncü maddede öngörülen izin süreleri, tarafların anlaşması ile bir bölümü on günden aşağı olmamak üzere en çok üçe bölünebilir.

İşveren tarafından yıl içinde verilmiş bulunan diğer ücretli ve ücretsiz izinler veya dinlenme ve hastalık izinleri yıllık izne mahsup edilemez.

Yıllık ücretli izin günlerinin hesabında izin süresine rastlayan ulusal bayram, hafta tatili ve genel tatil günleri izin süresinden sayılmaz.

Yıllık ücretli izinleri işyerinin kurulu bulunduğu yerden başka bir yerde geçirecek olanlara istemde bulunmaları ve bu hususu belgelemeleri koşulu ile gidiş ve dönüşlerinde yolda geçecek süreleri karşılamak üzere işveren toplam dört güne kadar ücretsiz izin vermek zorundadır. İşveren, işyerinde çalışan işçilerin yıllık ücretli izinlerini gösterir izin kayıt belgesi tutmak zorundadır.
kırmıızı satırın sizinle alakası yok. konuyu takip ederken dikkatimi çekti.

Eski bir personel şefi, olarak dosyanın aslını istesem sakıncası var mı?
İzne çıkartmayı planladığınız günü yazıp dönüşünü nasıl hesaşlıyoprsunuz merak ettim. bu yönde geliştirileb,ilir.
 
Son düzenleme:
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Selamlar

Tek kişi için bir sayfada izin hesabı yaptırmak istiyorum ama yardımcı olabilirmisiniz ?
İlgili notlar ekteki dosyadadır.

Not: Lütfen zip rar olarak eklemeyiniz, direkt xls dosya ekleyiniz.
inceleyiniz.
Birde 15 yıl dan sonraki izin süresi ne kadardı ben unuttum. benim hatırladığım 14,21,30 diye gidiyordu. kırmızı değerleri ona göre revize ediniz.

bir module
Kod:
Sub subİzinHakedisleri()
Dim Csf As Excel.Worksheet:     Set Csf = ActiveSheet
Dim dtİseGiris As Date, dtBugün As Date
With Csf
If Not IsDate(.Cells(3, 6).Value) Then GoTo son
dtİseGiris = .Cells(3, 6).Value
dtBugün = CDate(Format(Now, "dd.mm.yyyy"))
geçenyıl = Year(dtBugün) - Year(dtİseGiris)
satır = 6
[COLOR=Green]'Böyle daha güzel oldu yazarken dikkat etmemişim ;)[/COLOR]
  with .Range(.Cells(7, 5), .Cells(50, 8)) 
     .value = Empty
     .Interior.Color = xlNone
  end with
  For i = 1 To geçenyıl
    dtKars = CDate(Day(dtİseGiris) & "/" & Month(dtİseGiris) & "/" & Year(dtİseGiris) + i)
    If dtKars <= dtBugün Then
    satır = satır + 1
      .Cells(satır, 5).Value = (Year(dtİseGiris) + i) - 1
      .Cells(satır, 6).Value = dtKars
      .Cells(satır, 7).Value = i
      If i < 6 Then
        .Cells(satır, 8).Value =[COLOR=Red] 14[/COLOR]
      ElseIf i < 15 Then
        .Cells(satır, 8).Value =[COLOR=Red] 28[/COLOR]
      ElseIf i >= 15 Then
        .Cells(satır, 8).Value = 28 '[COLOR=Red]56[/COLOR] 'iş kanuna göre 26 günden az olamaz diyor. 28 olabilir.
      End If
    .Range(.Cells(satır, 5), .Cells(satır, 8)).Interior.Color = vbYellow
    End If
  Next i
End With 'csf
son:
Set Csf = Nothing
End Sub
Thisworkbook modulüne
Kod:
Private Sub Workbook_Open()
For i = 1 To Worksheets.Count
  Call subİzinHakedisleri
Next i
End Sub

'Private Sub Workbook_SheetActivate(ByVal Sh As Object)
'Call subİzinHakedisleri
'End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Intersect(Target, [F3]) Is Nothing Then Exit Sub
Call subİzinHakedisleri
End Sub
işinizi gördü mü?
 
Katılım
17 Nisan 2006
Mesajlar
228
Geç kalınmış bir cevap ama çok teşekkürler
 
Üst