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

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
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.
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
arkadaşlar bir fikri olan varmı acaba?
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
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?
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
54 bakış ve hiç cevap yok? oofff offff.
 
Katılım
13 Aralık 2007
Mesajlar
110
Excel Vers. ve Dili
2003
sayın ockucukay

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

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
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.
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
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.
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
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....
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,660
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
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
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
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.
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
arkadaşlar bir gelişme var mı?
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
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ı?
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
arkadaşlar yardımcı olabilecek olan varmı?
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
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.
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
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...
 
Üst