• DİKKAT

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

Çalışma süresi hesaplama ile ilgili

Katılım
3 Ekim 2007
Mesajlar
7
Excel Vers. ve Dili
2003
Ekle dosyada göreceğiniz üzere her personelin aylık giriş çıkış saatleri yanyana gelecek şekilde pdks programı sayesinde raporlanıyor.
bizim yapmak istediğimiz uygulama şu şekilde ;

her personelin dökümünün en son sırasına sütununa ; 30 günün (giriş - çıkış) - "07:30" toplamını aldırmak
 

Ekli dosyalar

Makrolu çözüm daha mantıklı görünüyor.

Kod:
Sub PRMTS()
Dim SAA As Double
On Error Resume Next
For K = 6 To Range("A65535").End(3).Row
For t = 4 To 64 Step 2
If IsNumeric(Cells(K, t).Value) = True Then
If Cells(K, t).Value < Cells(K, t + 1).Value Then
SAA = SAA + ((1 - Cells(K, t).Value + Cells(K, t + 1).Value) - 0.3125)
Else
SAA = SAA + ((Cells(K, t).Value - Cells(K, t + 1).Value) - 0.3125)
End If
End If

Next t
Range("BN" & K).Value = SAA
Next K
End Sub

Kodları denemeden önce mutlaka yedek alınız. Örnek dosyada bazı giriş yada çıkış saatleri eksik kod onların hesaplamasını yapmadan atlıyor. İyi çalışmalar.
 
hocam çok teşekkürler birde bunun uygulanmış halini dosyama ekleseniz süper olur yada nasıl yapıcağımı anlatsanız macrolu hiç çalışmadım şimdiye kadar
 
hallettim çok teşekkürler :) ama hesaplaması doğrumu diye merak ettim şimdi
giriş saatinden çıkış saatini çıkartıp çalışma saatini bulup sonrasında 7,5 saatten çıkarttık değil mi bir de 7,5 değil de 9 saat istersek kaç yazmalıyım buraya ???


teşekkürler tekrar
 
Excel bildiğim kadarıyla her saati saniye bazında bir sayı olarak hesaplıyor. 07:30 karşılığı 0.3125
24:00 karşılığı 1.
Bunu öğrenmeniz ve makroyla ilgili kendinizi geliştirmeniz için bir öneri; görünüm-makrolar-makro kaydet yapın herhangibi bir hücreye 09:00 yazın sonra aynı yerden kaydı durdurun. Modülün içinden yazdığınız zamanın numarik karşılığını öğrenin. Birde zaman sayısı formülü var. Onuda şu şekilde kulanabilirsiniz. A1 Hücresine başında tırnakla ( '09:00 ) yazın formül şu;

=ZAMANSAYISI(a1)
 
size birde birşey soracağım ama ; şöyle bir formül yazdım ;

=EĞER(D711<B711;("24:00"-(D711+B711))-$K$1;(D711-B711)-$K$1)

d sütunu çıkış saati
b sütunu giriş saati

şu anda sorunsuz işlem sonucu alıyorum. fakat kolonlardan herhangi biri boşsa
işlem yapmasın ve sonuç boş çıksın istiyorum mümkün müdür??
 
O iş içinde bir sorgu ekleyelim;

Kod:
=EĞER(YADA(D711="";B711="");"";EĞER(D711<B711;("24:00"-(D711+B711))-$K$1;(D711-B711)-$K$1))
 
süpersiniz oldu fakat şimdide K1 giriş çıkış farkı K1 değişkeninden küçük kalınca negatif değer olduğundan dolayı DEĞER çıkıyor onun içinde başına bir sorgu gerekecek sanırım
kusura bakmayın çok uğraştırdım sizi gece gece
 
Formülün başına hatalıysa 0 mesai yassın mı istiyorsunuz yada eksi çıkan değeri mesaiden düşüyormusunuz ?

Hatalıysa 0 yazması için;

Kod:
=EĞER(EHATALIYSA(EĞER(YADA(D711="";B711="");"";EĞER(D711<B711;("24:00"-(D711+B711))-$K$1;(D711-B711)-$K$1)));0;EĞER(YADA(D711="";B711="");"";EĞER(D711<B711;("24:00"-(D711+B711))-$K$1;(D711-B711)-$K$1)))
 
hatalıysa veya negatifse sonuç boş çıksın istiyorum
 
Geri
Üst