• DİKKAT !

    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 Dosya Yükleme tamamen ücretsizdir.

Çözüldü Vba Personel Saatlik İzinin Toplamında Ay İçinde Günleri Kesme

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.

merttr07

Yeni Üye
Katılım
25 Ara 2021
Mesajlar
199
Çözümler
2
Aldığı beğeni
16
Excel V
Office 2013 TR
Konu Sahibi
Balta Siyah ile işaretlediğim alan saatlik izinlerde
her 8 saat geçtiğinde günlük olarak 1 2 3 4 diye yazmasını istiyorum. Oda ancak aylık ola bilir. Örneğin Şubat ayında bir personel toplam 16 saat izin kulandıysa 2 günü kesilecek. EĞER 8 saat toplam kulandıysa 1 günü. EĞER 24 saat toplam kullandıysa 3 günü kesilecek. Buraya yazması gerekir. Onu nasıl yaparım. Bilmiyorum.adadAdsız.jpg
Yeni aya geçildiğinde aynı şekilde Toplam Kullanılan Saatlik İzin 8 saati doldurduğunda 1 gün 16 Saat 2 gün 24 saat 3 gibi devam edecek 8 saatlik çalışmayı her aştığında gün kesmesi için veri atacak. Yıl dolduğu zaman yani yeni bir yıla geçtiğinde geriye dönük Yıllık İzin haric diğer tüm veriler sıfırlanacak.
Ocak ayında personel Toplam Kullanılan Saatlik İzinde 8 ve 8 katlarını aşmadıysa o ay bir şey kesilmeyecek aşıldıysa rakamla kaç gün kesilecekse o yazacak. Her ay bu sıfırdan başlayacak diğer ayın ki devretmeyecek. O aya ait olarak kalacak saatlik izin.
 
Konu Sahibi
Balta Siyah ile işaretlediğim alan saatlik izinlerde
her 8 saat geçtiğinde günlük olarak 1 2 3 4 diye yazmasını istiyorum. Oda ancak aylık ola bilir. Örneğin Şubat ayında bir personel toplam 16 saat izin kulandıysa 2 günü kesilecek. EĞER 8 saat toplam kulandıysa 1 günü. EĞER 24 saat toplam kullandıysa 3 günü kesilecek. Buraya yazması gerekir. Onu nasıl yaparım. Bilmiyorum.Ekli dosyayı görüntüle 5563
Yeni aya geçildiğinde aynı şekilde Toplam Kullanılan Saatlik İzin 8 saati doldurduğunda 1 gün 16 Saat 2 gün 24 saat 3 gibi devam edecek 8 saatlik çalışmayı her aştığında gün kesmesi için veri atacak. Yıl dolduğu zaman yani yeni bir yıla geçtiğinde geriye dönük Yıllık İzin haric diğer tüm veriler sıfırlanacak.
Ocak ayında personel Toplam Kullanılan Saatlik İzinde 8 ve 8 katlarını aşmadıysa o ay bir şey kesilmeyecek aşıldıysa rakamla kaç gün kesilecekse o yazacak. Her ay bu sıfırdan başlayacak diğer ayın ki devretmeyecek. O aya ait olarak kalacak saatlik izin.
Balta bir kaç deneme yaptım ama sonuç alamadım hep takılıyorum.
 
Sayın merttr07 ,
isme hitaben mesaj atmayın.
size yardımcı olmak isteyecek arkadaşların
konuyla ilgilenmemesine neden olacaktır.
 
Konu Sahibi
Sayın merttr07 ,
isme hitaben mesaj atmayın.
size yardımcı olmak isteyecek arkadaşların
konuyla ilgilenmemesine neden olacaktır.
Bende diyorum ki neden sizden başkası yardımcı olmuyor :) . Ama tüm emeği geçenlere gerçekten teşekkürler işyerinde iş yükümüz hafifliyor. Bu konuda da desteklerinizi sizden ve diğer arkadaşlardan beklerim kolay gelsin.
 
Merhaba.

Formlar açılırken sorun çıktı ancak Excel Sayfasına aşağıdaki formülü yazarsanız her ay kullandığı saatlik izinleri toplar ve 8 e böler. Tam sayı kısmı kadar kesinti gününü hesaplar.

HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.

Saatlik izin olduğundan dolayı bitiş tarihini yazmasanız da olur. Formülde bitiş tarihi bu nedenle göz ardı edilmiştir.
Formül mantığı. İzin tarihindeki ayın ilk ve son gününe göre tüm izin saatlerini topluyor. Bu nedenle aynı ay içerisinde aynı personel birkaç kez izin kullandığında her iznin karşısına kesilecek gün sayısını hesaplıyor. Bu nedenle kesilecek gün sayısı ilgili ayda iznin karşısına gelen ilk değer kadar. Çift alınmamalı.
 
Konu Sahibi
Merhaba.

Formlar açılırken sorun çıktı ancak Excel Sayfasına aşağıdaki formülü yazarsanız her ay kullandığı saatlik izinleri toplar ve 8 e böler. Tam sayı kısmı kadar kesinti gününü hesaplar.

HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.

Saatlik izin olduğundan dolayı bitiş tarihini yazmasanız da olur. Formülde bitiş tarihi bu nedenle göz ardı edilmiştir.
Formül mantığı. İzin tarihindeki ayın ilk ve son gününe göre tüm izin saatlerini topluyor. Bu nedenle aynı ay içerisinde aynı personel birkaç kez izin kullandığında her iznin karşısına kesilecek gün sayısını hesaplıyor. Bu nedenle kesilecek gün sayısı ilgili ayda iznin karşısına gelen ilk değer kadar. Çift alınmamalı.
İzin tarihindeki ayın ilk ve son gününe göre tüm izin saatlerini topluyor. Bu nedenle aynı ay içerisinde aynı personel birkaç kez izin kullandığında her iznin karşısına kesilecek gün sayısını hesaplıyor. Bu nedenle kesilecek gün sayısı ilgili ayda iznin karşısına gelen ilk değer kadar. Çift alınmamalı.
Bu kısmı anlamadım ve her aya göre düzenli bir şekilde bunu yapacak mı ayrıca yıl bittiğinde yıllık izin haricinde diğer tüm izinler yeni yılın 15 de verileri silmesini istiyorum.
 
Merhaba.
Aynı personele aynı ayda 8 saatin üzerinde saatlik izin girerseniz durumu görebilirsiniz, her kullandığı iznin karşısına kesilecek gün sayısı olarak 1 yazacaktır. Örneğin dört kere izin kullandıysa dördünün de karşısına 1 yazacaktır. İzinleri ve kesilecek günü aynı sayfada hesapladığımız için böyle oluyor. Her ay için bu işlemi yapacaktır.

Formül şunu yapıyor; izin kullanılan ayın ilk gününe eşit ve büyük , son gününe eşit ve küçük tüm izin saatlerini topluyor. 8 e bölüyor ve aşağıya yuvarlıyor kesirleri almaması için. Ay bazında çalıştığı için bir sonraki aya devretme gibi bir durum olmuyor. Sizde bunu istemişsiniz sanırım. " Her ay bu sıfırdan başlayacak diğer ayın ki devretmeyecek. O aya ait olarak kalacak saatlik izin. " demişsiniz.

Umarım açıklaya bilmişimdir.
 
Konu Sahibi
Merhaba.

Formlar açılırken sorun çıktı ancak Excel Sayfasına aşağıdaki formülü yazarsanız her ay kullandığı saatlik izinleri toplar ve 8 e böler. Tam sayı kısmı kadar kesinti gününü hesaplar.

HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.

Saatlik izin olduğundan dolayı bitiş tarihini yazmasanız da olur. Formülde bitiş tarihi bu nedenle göz ardı edilmiştir.
Formül mantığı. İzin tarihindeki ayın ilk ve son gününe göre tüm izin saatlerini topluyor. Bu nedenle aynı ay içerisinde aynı personel birkaç kez izin kullandığında her iznin karşısına kesilecek gün sayısını hesaplıyor. Bu nedenle kesilecek gün sayısı ilgili ayda iznin karşısına gelen ilk değer kadar. Çift alınmamalı.

Merhaba.
Aynı personele aynı ayda 8 saatin üzerinde saatlik izin girerseniz durumu görebilirsiniz, her kullandığı iznin karşısına kesilecek gün sayısı olarak 1 yazacaktır. Örneğin dört kere izin kullandıysa dördünün de karşısına 1 yazacaktır. İzinleri ve kesilecek günü aynı sayfada hesapladığımız için böyle oluyor. Her ay için bu işlemi yapacaktır.

Formül şunu yapıyor; izin kullanılan ayın ilk gününe eşit ve büyük , son gününe eşit ve küçük tüm izin saatlerini topluyor. 8 e bölüyor ve aşağıya yuvarlıyor kesirleri almaması için. Ay bazında çalıştığı için bir sonraki aya devretme gibi bir durum olmuyor. Sizde bunu istemişsiniz sanırım. " Her ay bu sıfırdan başlayacak diğer ayın ki devretmeyecek. O aya ait olarak kalacak saatlik izin. " demişsiniz.

Umarım açıklaya bilmişimdir.
Şuper bir açıklama olmuş ama tek sorun şu 8 ve 8 katları olduğunda yani 16 olduğunda iki gün kes demesi gerek hep 1 gün kes dememeli. 24 ise 3 gün kes demesi gerek. Peki istediğimiz formül ama bunu daha farklı ve her 8 saati geçtiğinde gün kes yazdırmanın yolu varmı acaba
 
Merhaba.

Aynı ay ve Aynı Personel de 8 ve 8 in katlarında hesaplama yapıyor. Tekrar kontrol eder misiniz.

Bende hesaplama yapıyor. Dosya ekte. formüle sadece "Gün Kesinti Yap" ı ekledim :)
 
Konu Sahibi
Merhaba.

Aynı ay ve Aynı Personel de 8 ve 8 in katlarında hesaplama yapıyor. Tekrar kontrol eder misiniz.

Bende hesaplama yapıyor. Dosya ekte. formüle sadece "Gün Kesinti Yap" ı ekledim :)
Peki yıllık izin haricinde diğer izin bilgilerini yıl bittiğinde silmesini nasıl yapa bilirim.
 
Izın_Dokumu Sayfasındakilerden mi bahsediyorsunuz. yoksa
Gecici_Izın_Dokumu Sayfasındakilerden mi? Tam söylerseniz ufak bir makro yazılabilir.

Ama naçizane tavsiyem eğer bir yedeğini almıyorsanız geçmiş verileri silmeyin. Personellerle ilgi veri ve kayıtların saklanmasında fayda var.
 
Konu Sahibi
Izın_Dokumu Sayfasındakilerden mi bahsediyorsunuz. yoksa
Gecici_Izın_Dokumu Sayfasındakilerden mi? Tam söylerseniz ufak bir makro yazılabilir.

Ama naçizane tavsiyem eğer bir yedeğini almıyorsanız geçmiş verileri silmeyin. Personellerle ilgi veri ve kayıtların saklanmasında fayda var.
Bu sefer yıllar biriktice veri birikecek ve Excel ağır çalışacak yıllık izin haricinde tüm izinlerin hepsi izin dökümü ve geçici izin dökümü heryerden silinsin ama düşünce olarak bir başka öneriniz var ise inada açığım . Mesela 2023 Ocak 15 tarih geldiğinde dediğim veriler silinsin sadece yıllık izin kalsın.
 
oooo daha çok varmış 2023 Ocak ayına :) Çözeriz o zamana kadar.

Yarın VBA kodunu göndermiş olurum İNŞAALLAH. Ama tüm sayfalar uygun olmaz çünkü koşula bağlı silineceğinden formlardaki diğer veriler de siline bilir. İzin Türleri sabitse ve hepsi aynı şekilde yazıldıysa tabi iş daha kolay.

Mantık şu;
İlgili sayfaya gidecek, İzin türünün olduğu sütuna bakacak , Koşula uyuyorsa satırı silecek. Sonra diğer sayfaya geçecek.
If, For Nex, Delete komutları çözecektir.

Not, Silmeye en alttan başlayın. Yoksa satır silinince alttaki veri üste çıkacağından döngü dışına çıkacak ve doğru bir silme gerçekleşmeyecektir. Kendiniz uğraşırsanız diye ufak bir hatırlatma.
 
Merhaba.

İşlerimden biri iptal olunca çözümü yazayım istedim.

HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.

Bu kodu silinecek her sayfa için çoğaltırsanız istediğiniz olacaktır.

Yine de her yılın bir yedeğini alıp saklamayı unutmayın. Yeni yılda silersiniz.
 
Konu Sahibi
Merhaba.

İşlerimden biri iptal olunca çözümü yazayım istedim.

HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.

Bu kodu silinecek her sayfa için çoğaltırsanız istediğiniz olacaktır.

Yine de her yılın bir yedeğini alıp saklamayı unutmayın. Yeni yılda silersiniz.
Beyin yandı işten dolayı denedim ama ne yazık ki verim alamadım :(
 
Dosya ektedir.

Makroyu çalıştırmak için düğme ekledim. Siz istediğiniz gibi çalıştırabilirsiniz.
 
Çözüm
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst