• DİKKAT

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

giriş çıkış saatlerine göre hesaplama

Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
açıkcası konuyu nereye açacağımı bilemedim, eğer yanlış yere açtıysam moderatörlerimden özür dilerim.

arkadaşlar fonksiyonlarla yapmaya çalıştım ama kriterler çok fazla ve ağır çalışıyor. yapmam gereken şu:standart olan giriş ve çıkış saatleriyle gerçekleşen giriş ve çıkış saatleri karşılaştırılacak. 8 saatin altındaki zamanları kesinti yapacak (eğer izinli olarak belirtilmediyse).8 saatlik çalışmanın 1 saat üstündeki zamanlar fazla mesai olarak verilecek. puantajlar için olan örnekleri inceledim ama hiçbirinde böyle bir puantaj yok. eğer makrolarla çözebilirsek çok sevineceğim.
 
dostlar

giriş çıkış saatlerini sabit tutup alt üst tolerans vererek karşılaştırmaya çalışıyorum ama hergün için bunu yapmak zor oluyor. makroyla bu işi yapmanın bir yolu yok mu acaba?
 
sayın ockucukay

anladığım kadarıyla çözmeye çalıştım, dosyanız ektedir
 
sayın metot

ilginize çok teşekkür ederim. sizinkine benzer bir yolla bende bir dosya yaptım ve çalıştırıyorum. ama personel sayısı fazla olduğundan dosya yavaş çalışıyor.bu yüzden makrolu bir çözüm olabilirmi diye sormuştum.
problemi şöylece detaylandırayım isterseniz.

1- toplam 4 vardiya var. bunlar: 8:30-18:00 / 08:00-16:00 / 16:00-00:00 / 00:00-08:00
2- gelen işçilerin vardiyası her hafta değişiyor, sadece 8:30-18:00 vardiyası sabit. diğer işçiler kendi vardiyaları içinde geliyorlar. geç gelenler ve erken giriş yapanlar var. bunları belli bir toleransla izliyoruz. Örneğin 08:00-16:00 vardiyasına 07:55'te gelen işçinin giriş saati 08:00 olarak alınıyor. 16:00'da çıkması gereken işçi 17:10'a kadar çıkış yapmazsa mesai verilmiyor. 17:10'dan sonra 1 saat mesai yazılıyor.

umarım yeteri kadar anlatabilmişimdir, cevaplarınızı sabırsızlıkla bekliyorum.
 
Forumda bundan önce de personel giriş çıkış saatleri ile ilgili birçok soru sorulmuştu.
Fakat konu çok karışık ve teknik olduğu için tam olarak çözüm oluşturulamamıştır.

Çözümde karşılaşılan sorunlar;

> Tüm vardiyaların giriş - çıkış tolerans saatleri
> Vardiyalardaki gün değişimi ( gece 00:00 sonrası )
> Yemek saatlerinin düşülmesi
> Haftalık vardiya değişimi
> Mesai saatleri
> İzinler
> ....

Bildiğiniz gibi personel giriş çıkış saatlerini takibi için PDKS (Personel Devam Takip Sistemi) programları vardır.

Bunlarda bile bazı eksiklikler vardır.

Yine de standart hareketler için bir çalışma yapılabilinir.Tabi üzerinde biraz uğraşmak gerekiyor.
 
Forumda bundan önce de personel giriş çıkış saatleri ile ilgili birçok soru sorulmuştu.
Fakat konu çok karışık ve teknik olduğu için tam olarak çözüm oluşturulamamıştır.

Çözümde karşılaşılan sorunlar;

> Tüm vardiyaların giriş - çıkış tolerans saatleri
> Vardiyalardaki gün değişimi ( gece 00:00 sonrası )
> Yemek saatlerinin düşülmesi
> Haftalık vardiya değişimi
> Mesai saatleri
> İzinler
> ....

Bildiğiniz gibi personel giriş çıkış saatlerini takibi için PDKS (Personel Devam Takip Sistemi) programları vardır.

Bunlarda bile bazı eksiklikler vardır.

Yine de standart hareketler için bir çalışma yapılabilinir.Tabi üzerinde biraz uğraşmak gerekiyor.

sayın ripek

söylediğiniz gibi parametre çok fazla. ancak benim sadece istediğim anlattığım kadarı, yani işin tamamını siz arkadaşlarıma yüklemek niyetinde değilim :) şu anda üzerinde çalıştığım dosyada (hala değişiklikler yapıyorum bir türlü beğenemedim :) ) en yavaş ve zor işlem bu. eğer buna makroyla bir çözüm bulabilirsem diğerlerini fonkisyonlarla halledebilirim sanırım. o yüzden sizden ricam benden bu konuda yardımlarınızı esirgemeyin. tekrar teşekkürler....
 
Selamlar,

Örnek dosyanıza göre aşağıdaki kodu denermisiniz.

Kod:
Sub ÇALIŞMA_SÜRESİ_HESAPLA()
    Dim GSAATİ As Date, ÇSAATİ As Date, SÜRE As Date, STDSÜRE As Date
    [F2:G65536].ClearContents
    STDSÜRE = "09:30"
    For X = 2 To [A65536].End(3).Row
    GSAATİ = Cells(X, 4)
    ÇSAATİ = Cells(X, 5)
    GSAAT&#304; = IIf(GSAAT&#304; < "08:30", "08:30", "09:00")
    &#199;SAAT&#304; = IIf(&#199;SAAT&#304; < "19:10", "18:00", Cells(X, 5))
    Cells(X, 6).NumberFormat = "hh:mm;@"
    S&#220;RE = &#199;SAAT&#304; - GSAAT&#304;
    Cells(X, 6) = S&#220;RE
    Cells(X, 7).NumberFormat = "hh:mm;@"
    Cells(X, 7) = IIf(S&#220;RE > STDS&#220;RE, (&#199;SAAT&#304; - GSAAT&#304;) - STDS&#220;RE, 0)
    Next
    MsgBox "&#304;&#350;LEM&#304;N&#304;Z TAMAMLANMI&#350;TIR.", vbInformation
End Sub
 
Selamlar,

Örnek dosyanıza göre aşağıdaki kodu denermisiniz.

Kod:
Sub ÇALIŞMA_SÜRESİ_HESAPLA()
    Dim GSAATİ As Date, ÇSAATİ As Date, SÜRE As Date, STDSÜRE As Date
    [F2:G65536].ClearContents
    STDSÜRE = "09:30"
    For X = 2 To [A65536].End(3).Row
    GSAATİ = Cells(X, 4)
    ÇSAATİ = Cells(X, 5)
    GSAATİ = IIf(GSAATİ < "08:30", "08:30", "09:00")
    ÇSAATİ = IIf(ÇSAATİ < "19:10", "18:00", Cells(X, 5))
    Cells(X, 6).NumberFormat = "hh:mm;@"
    SÜRE = ÇSAATİ - GSAATİ
    Cells(X, 6) = SÜRE
    Cells(X, 7).NumberFormat = "hh:mm;@"
    Cells(X, 7) = IIf(SÜRE > STDSÜRE, (ÇSAATİ - GSAATİ) - STDSÜRE, 0)
    Next
    MsgBox "İŞLEMİNİZ TAMAMLANMIŞTIR.", vbInformation
End Sub

Sayın Korhan Ayhan (ya da cost control mu demeliydim? :) )
ilginize teşekkür ederim kod çok güzel çalıştı. ancak ben bu kodu diğer 3 vardiyayı içerecek şekilde nasıl çalışıtırırım? her vardiya için bu kodu ayrı olarak mı yazmak gerekiyor? Ya da (ekteki dosyada gösterdim) her vardiyayı numaralasak ve makro o numaralara göre kontrol etse acaba dahamı kolay olur? çok başınızı ağrıtmadım umarım, tekrar ilginize çok teşekkür ederim.
 
Sayın Korhan Ayhan (ya da cost control mu demeliydim? :) )
ilginize teşekkür ederim kod çok güzel çalıştı. ancak ben bu kodu diğer 3 vardiyayı içerecek şekilde nasıl çalışıtırırım? her vardiya için bu kodu ayrı olarak mı yazmak gerekiyor? Ya da (ekteki dosyada gösterdim) her vardiyayı numaralasak ve makro o numaralara göre kontrol etse acaba dahamı kolay olur? çok başınızı ağrıtmadım umarım, tekrar ilginize çok teşekkür ederim.

sayın korhan ayhan

yukarıdaki konuyla ilgilenebildinizmi, bir gelişme var mı?
 
sayın moderatörlerim, uzman arkadaşlarım

bu problemi çözemedim, tıkandım kaldım resmen. daha önce sayın korhan ayhanın verdiği kodu her vardiya modeli için ayrı ayrı sayfalarda (1.vardiya, 2. vardiya gibi) uyguladım ama bir sayfada yapamıyorum. yardımlarınızı istirham ediyorum.
 
sayın moderatörlerim, uzman arkadaşlarım

bu problemi çözemedim, tıkandım kaldım resmen. daha önce sayın korhan ayhanın verdiği kodu her vardiya modeli için ayrı ayrı sayfalarda (1.vardiya, 2. vardiya gibi) uyguladım ama bir sayfada yapamıyorum. yardımlarınızı istirham ediyorum.

306 görüntüleme ve hala bir cevap alamadım, ne yapalım artık. cevap verenlerinde vermeyenlerinde canı sağolsun.ilginiz için tekrar teşekkürler...
 
Geri
Üst