• Foruma hoş geldin 👋 Ziyaretçi

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Çözüldü Yıllık izin yaş hesaplama sorunu

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

xmenx

Yeni Üye
Kullanıcı Bilgileri
Aktiflik
Çevrimdışı
Katılım
25 Eki 2022
Mesajlar
303
Aldığı beğeni
45
Excel V
Office 2016 TR
Konuyu Başlatan
Merhaba üstadlar ekteki dosya da personel 3 işe giriş tarihi 25.02.2019 ve doğum tarihi 13.04.1972 olan personelin yıllık izin hakedişlerin hepsine 20 yazıyor güncel yıla göre bakıyor 2020 48 yaşında olur ve yıllık izin hakedişi 14 olması gerekiyor diğer yıllarında hangi yılda 50 yaşına girdiyse ondan sonra 20 yazması gerkeiyor. Yardımlarınız için teşekkür ederim şimdiden
 

Ekli dosyalar

  • ÖRNEKİZİN.xlsm
    97.9 KB · Gösterim: 23
Denermisiniz.
 

Ekli dosyalar

  • YENİ FONKSİYON.xlsm
    85.4 KB · Gösterim: 9
Teşekkür ederim hocam denedim faakt kodu çalıştırıgımda alttaki yerde hata veriyor.
overflow hatası
trh = DateSerial(a(1, j + 18), Month(Date), Day(Date))
 
Teşekkür ederim hocam denedim faakt kodu çalıştırıgımda alttaki yerde hata veriyor.
overflow hatası
trh = DateSerial(a(1, j + 18), Month(Date), Day(Date))
Sizin kodunuzu kullanmayın ben yeni fonksiyon ekledim formülü yeni personel eklediğinizde aşağı doğru sürüklemeniz yeter
 
Teşekkür ederim hocam ama bütün işlemim o makro üzerinden yürüyor eğer makro koduna dahil edebilirseniz benim çok iyi olur
 
aynı konuyu farklı bir forumda da sormuşsunuz ve cevap da verilmiş
 
Evet bu forumdada cevap verilmiş yani ne anlamamız gerekiyor sorunun çözüldüğünümü
 
Teşekkür ederim refaz hocam aslında sorunum yıllara göre hakediş hesaplarken yaşı dikkate alması 50 yaşından büyüklere 20 18 yaşından küçüklere 20 kıdemine göre hesaplaması
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.

Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 
Rica ederim.
Ben sadece hatalı satıra bakmıştım.
Böyle karışık sorulara kafam pek basmıyor yinede pc açınca bakarım müsait olunca.
 
Ayrıca koda dediğim olayı yapmamışsınız year olan kısmı.
 
Teşekkür ederim hocam denedim yine aynı sonuçu verdigi için eklemedim
 
Teşekkür ederim hocam denedim yine aynı sonuçu verdigi için eklemedim
Aynı sonuç derken hatamı verdi yoksa yanlış sonuçlarmı verdi.Yanlış sonuçlar ise yapabileceğim bişey yok çünkü konuyu anlamıyorum.Ama aynı hata ise hata vermez çünkü bende vermedi.Mesajınızdaki hata dediğim year yani yıl olayı ile ilgili idi yanılmıyorsam 22 döngüye gelince o kısımda yıl olarak değil tarih olarak veri olduğu için hata vermişti bu yüzden year ekledim ve çalıştı.İnternettede vba dateserial gibi aratırsanız anlayacağınızı tahmin ediyorum yazdıklaımı hocam.
 
Hocam evet dediginiz kodu ekledikten sonra sonuç hatalı veriyor . Kodun çalışmasında sıkıntı yok sadece yaşa göre hesaplamayı doğru yapmıyor sadece
 
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.

burdaki kod bloğunda sayi1 değişkeni küçük eşit 18 ve büyük eşit 50
için çalışır. Arası için (yani 19-49 için) kod yok. Kodlar bu şekliyle çalıştığında
en son hangi değeri yüklenmişse 18-50 arası için onu yükler.
Daha da detay var ama girmeyeyim. Sorunlu bir kod bloğu neticede.
Bu kısım düzeltilecek görünüyor. Bunun için de senaryoya ihtiyaç var.

Bu kadar çok If End If ile uğraşacağınıza sorunuzun can alıcı kısmı için
bir fonksiyon yazılmış olsa çok daha rahat çalışırdınız.
Biz de çok daha rahat yanıt vermiş olurduk.
Fonksiyonun girdilerine bakar ona göre düzeltirdik.
Anlayabildiğim kadarıyla 3 değişken var.
Çalışma süresi için sayi değişkenini kullanmışsınız. Buna çalışma süresi diyelim.
İkinci bir değişken yaş değişkeni.
Yaş değişkeni de 3 kademede ele alınabilir.
< 18, 18-49, >= 50
Üçüncü değişkeniniz sayi değerini kademelendiriyor.
0-364=0, 364-2189=14, 2189-5475=20, >=5475 = 26 şeklinde.
Daha fazlası var mıdır bilemiyorum. O kadar çok If - End If var ki başım döndü.
Eğer doğru anlamışsam boş bir sayfaya değişkenler ve kademelendirmelere ilişkin
senaryoyu yazın. Ve ayrı bir başlık altında buna ilişkin bir fonksiyon talep edin.
Dosya bu şekliyle epeyce canınızı sıkar.
Kolay gelsin.
 
Hocam kodu bende yazmadım başkasının kodu sadece kıdemi yıllara göre izin haekdişlerini hesaplıyor sadece kodda yaşa göre hesaplama yoktu alttaki kodu ben ekledim
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 
Hocam kodu bende yazmadım başkasının kodu sadece kıdemi yıllara göre izin haekdişlerini hesaplıyor sadece kodda yaşa göre hesaplama yoktu alttaki kodu ben ekledim
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
Sayın xmenx
Varsayalım ki yaş 52 çalışma süresi 500
izin hakedişi ne olur ?
Varsayalım ki yaş 48 çalışma süresi 5500
izin hakedişi ne olur ?
Sizin kodlarınızda çalışma süresine göre izin hakedişi ne olur
bunu okumak mümkün.
Fakat yaş kriterine göre izin hakkedişi ne olur bunu okumak mümkün değil.
Hiç bir veri yada kriter yok çünkü.
Bunları yazmalısınız ki ilgili kısmı düzeltmeye çalışalım.
Tekrarda fayda var. Dosya bu şekliyle sıkıntılı. Kafa ağrıtır.
 
Sayın excelcan hocam buyrun alttaki gibi kurallar. Buna göre olucak ama dediğim gibi biryıldan 5 yıla kadar 14 gün gibi kurallar çalışıyor sadece yaş kuralı çalışmıyor başka sıkıntı yok
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst