• DİKKAT

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

Hakediş

ckarabacak

Altın Üye
Katılım
12 Ocak 2010
Mesajlar
369
Excel Vers. ve Dili
Excel 2010
İYİ ÇALIŞMALAR ARKADAŞLAR

EKLİ DOSYADA DA İFADE ve İŞARET ETMEYE ÇALIŞTIĞIM GİBİ

EĞER "J" SÜTUNUNDAKİ İŞTEN ÇIKIŞ TARİHİ "Z" SÜTUNUNDAKİ İZİN HAKEDİŞ TARİHİNDEN KÜÇÜK İSE "U"5 VE "U"6 SATIRLARDAKİ İZİN GÜNLERİ OLMAMASI LAZIM.

AYRICA ÇIKIŞ TARİHİ OLAN KİŞİLERİN EN SON HAKEDİŞ TARİHİNİ SABİTLEYEBİLİRMİYİZ.

FORMÜL İLE ÇÖZMEYE ÇALIŞTIM OLMADI (FARKLI YERLERDE HATA VERİYOR.)

YARDIMLARINIZI RİCA EDİYORUM.
 

Ekli dosyalar

Merhaba.

hakedis isimli formülünüz doğru çalışıyorsa.

U4 hücresine aşağıdaki formülü yapıştırıp aşağı doğru çekin.

Kod:
=EĞER(VE(J4="";J4<Z4);"";hakedis($I4;$H4;U$3;$J$2))
 
Sayın ASLAN7410 Merhaba

Göndermiş olduğunuz formül için teşekkür ederim. Ancak; İlk bakışta mantıklı olan ve benimde denediğim ve de farklı formüllerinde uygulaması doğru sonucu almamı sağlamadı. Zira hakkediş makro ile yazılım sonucu alınan veriler olduğundan hakediş formülü yani modül içindeki makro yazılımında çıkış tarihi opsiyonu ilavesi yapılmadan hakediş kısa yolunun önüne veya sonuna ilave formül ile sonuç alınmayacak gibi görünüyor. Makro yazılımı yapan arkadaşlarımızın yardımlarını bekliyorum.
 
koda işten çıkış tarihi ekledim.
kod hesaplamalrı işten çoktığı tarihide baz alıyor

örnek olarak 02.01.2017 tarihinde işten ayrılan bir kişiye kod 01.01.2017 tarihinde izin vermektedir.




Kod:
Function hakedis(isegiristarihi, dogumtarihi, kontrol_yili, gunun_tarihi, istençıkıstarihi)

If isegiristarihi = "" Then
hakedis = ""
Exit Function
ElseIf dogumtarihi = "" Then
hakedis = ""
Exit Function
ElseIf kontrol_yili = "" Then
hakedis = ""
Exit Function
ElseIf gunun_tarihi = "" Then
hakedis = ""
Exit Function
End If


zaman_aralıgı = CDate(Format(Format(isegiristarihi, "dd.mm.") & kontrol_yili, "dd.mm.yyyy"))
zaman_aralıgı2 = CDate(Format(Format(isegiristarihi, "dd.mm.") & kontrol_yili, "dd.mm.yyyy"))


yer3 = CDate(zaman_aralıgı)
yer = Val((zaman_aralıgı - CDate(isegiristarihi)) * 1) + 1
yer1 = Val(Val(((zaman_aralıgı - CDate(dogumtarihi)) * 1) + 1) / 365.25)

If yer >= 365.25 Then
zaman_aralıgı = Val((yer / 365.25))
Else
zaman_aralıgı = 0
End If

If gunun_tarihi > yer3 Then
If isegiristarihi > 0 Then

If zaman_aralıgı <= 0 Then
hakedis = 0
ElseIf zaman_aralıgı >= 1 And zaman_aralıgı <= 5 Then
hakedis = 16
ElseIf zaman_aralıgı >= 6 And zaman_aralıgı <= 14 Then
hakedis = 23
ElseIf zaman_aralıgı >= 15 And zaman_aralıgı <= 65 Then
hakedis = 30
End If

If zaman_aralıgı > 0 Then
If hakedis <= 16 Then
If yer1 <= 18 Then
hakedis = 23
ElseIf yer1 >= 50 Then
hakedis = 23
End If
End If
End If

End If

Else
hakedis = ""
End If



If CDate(istençıkıstarihi) <> "00:00:00" Then
If CDate(istençıkıstarihi) > CDate(zaman_aralıgı2) Then
hakedis = hakedis
Else
hakedis = ""
End If
End If


End Function
 
Bir rica

Sayın halit3,

Üstadım, eklediğiniz kodları modüle mi, yoksa sayfa koduna mı eklemeliyim? Geliştirici'den
/Ekle/Form denetimleri /düğme'ye ekleyemedim. Sanıyorum yanlış bir şey yapıyorum.

Teşekkürler.
 
Sayın halit3,

Üstadım, eklediğiniz kodları modüle mi, yoksa sayfa koduna mı eklemeliyim? Geliştirici'den
/Ekle/Form denetimleri /düğme'ye ekleyemedim. Sanıyorum yanlış bir şey yapıyorum.

Teşekkürler.

kod kullanıcı tanımlı fonksiyon olduğundan kodu bir modüle ekleyin sonra foksiyon ekle düğmesinden kullanıcı tanımlı fonksiyonu seçin ve hakediş foksiyonunu tıklayın gereken parametreleri girin birazdaha açayımmı formüllerin bulunduğu bölüme gidin aşağıyuvarla ,alttoplam fonksiyonu gibi
 
Sayın üstadım,

Biraz Ramazan ve uykusuzluktan olacak, saçma bir soru olduğunu biliyorum. Değerli zamanınızı ayırarak verdiğiniz yanıt için teşekkür ederim. Lütfen kusuruma bakmayın.

Sevgi ve saygılar.
 
hakediş

Sayın Halit3 Merhaba

İlginize çok teşekkür ederim.

Göndermiş olduğunuz kodu Ekli dosyaya yükledim ancak bir değişiklik olmadı.

Bu tablonun istenilen şekilde sonuçlanması çok önemli olduğundan

Kod yüklemesi ve tablodaki hakediş kodu tanımlaması doğrumu ?

Doğru ise; Ben size konuyu tam anlatmak için Kod'a ilave edilecek mantığı formül ifadesi ile yazmaya çalışayım;

eğer, çıkış tarihi "j", hakediş tarihinden "z" küçük ise ilgili yıl boş (mesela:tablodaki 'u'5 boş olacak)

eğer, çıkış tarihi "j", hakediş tarihinden "z" büyük ve eşit ise ilgili yıla ait hakediş günü olacak (görülecek)

eğer, çıkış tarihi "j" boş ise, hakediş tarihi "z", BUGÜN()'ün tarihinden büyük ve eşitse ilgili yıla ait hakediş günü olacak (görülecek)

Ayrıca; Çıkış tarihi bulunan kişinin son hakkediş tarihini sabitleyebilirmiyiz. Yani Sonraki yıllarda değişmesin
 

Ekli dosyalar

Günün tarihine mesala 600 eklermisiniz

Kod:
=BUGÜN()+600

sonuçları gözlemleyin
kod günün tarihi yılbaşı olduğunda bir yıl kıdem verir işten ayrılanlar yılbaşından sonra ayrıldığından 1 yıl almaya hak kazanıyor kodların işlevi böyle
 
hakediş

Sayın halit3 merhaba

* haklısınız değişiklik olmuş, sonuca ulaşabilmemiz için bir iki müdahalenizi daha rica edeceğim; "aa" sütunundaki eksik günler (çalışılmayan) nedeniyle hakediş tarihi eksik günler kadar artış göstermesi gerektiğinden (giriş tarihi gibi düşünülmesi)
* kod fonksiyonunun bu mantığa göre yani; fonksiyon yazılımı içinde “aa” sütunundaki eksik gün sayıların giriş tarihi "ı" tarihlerine ilave edilip buna göre hesaplama yapması sağlandığında doğru sonuca ulaşabileceğimizi düşünüyorum.
* çıkış tarihi bulunan kişinin son hakediş tarihini sabitleyebilirmiyiz. Yani sonraki yıllarda değişmesin (fonksiyon yazılımı içinde yapacağınızı düşünerek hatırlattım)
 

Ekli dosyalar

fonksiyonu şöyle yapsanız sorun çözülmüyormu

K4 Hücresi için

Kod:
=hakedis($I4+$AA4;$H4;K$3;$J$2;$J4)
 
Son düzenleme:
Aynen yapılmıştır.

Aklınıza emeğinize sağlık. Çok Teşekkür ederim.
 
Geri
Üst