• DİKKAT

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

Makro ile Fazla Mesai Hesaplatma

Katılım
13 Ağustos 2008
Mesajlar
18
Excel Vers. ve Dili
2007 Türkçe
Merhaba arkadaşlar,
Ek'li tabloda yer alan fazla mesai hesaplama işlemini makro ile otomatik olarak
hesaplatma şansımız var mı?
Yardımınız için şimdiden teşekkürler.
 

Ekli dosyalar

buradaki düzende yuvarlama hatası var çarpan veya bölünen hcreleri aşağıya veya yukarıya yuvarlayınca sorun kendiliğinden kalkmış olacak


ben birinci satırtaki verilere uyğuladım bir bakınız.
 
Son düzenleme:
Sn. Halit,
Sanırım konuyu hiç anlamamışsınız, tabi bende eksik açıklama yapmış olabilirim.
Yine de ilginize teşekkür ederim.
Sıkıntımız fark sütununda ki değerin (+) eya (-) olarak küsüratlı kalıyor olması değil.
Fazla mesai sütununa (W Sütunu) yazmamız gereken değerleri (35,43 veya 20,28) hesaplayacak bir makroya ihtiyacım var.
Yani hesaplama yapılmadan önce W3 ve W4 hücrelerinin boş olduğunu varsaymalıyız.
Daha önce de belirttiğim gibi, ben o rakamları deneme yanılma yöntemiyle
buldum.
Söz konusu makro, bize "W" sütununa hangi değerleri yazmamız gerektiğini bildirecek ki, fark sütunundaki değer "0" veya "0"'a yakın bir değer olsun.
 
aşağıdaki kodu denermisiniz

Sub makro1()
For i = 3 To 4
For j = 1 To 100
If Cells(i, 9).Value > Cells(i, 38).Value Then
Cells(i, 23).Value = j
End If
Next j
Cells(i, 23).Value = Cells(i, 23).Value - 1
Next i
For i = 3 To 4
deg = Cells(i, 23).Value
For j = 1 To 100
On Error Resume Next
If Cells(i, 9).Value > Cells(i, 38).Value Then
Cells(i, 23).Value = deg & "," & Format(j, "00")
End If
Next j
Next i
End Sub
 
Makro ile Fazla Mesai Hesaplama

Teşekkürler Halit bey,
Verdiğiniz kodu denedim, en azından talebimi doğru ifade edebildiğime seviniyorum.
Ancak, verdiğiniz kod ile çıkan mesai saati, olması gerekenden (bin) 1.000
kat fazla çıkıyor ve bu haliyle de işimi gömüyor tabiki.
Aslında doğruya yaklaşmış durumdayız, sanırım kodun bir yerlerinde küçük bir
değişiklikle bunu çözebilirsiniz. (Keşke ben çözebilseydim :))

W3 Hücresinin Değeri 35,42 (otuzbeşvirgülkırkiki) saat çıkması gerekirken 35.100 (otuzbeşbinyüz) saat çıkıyor.
İlginize tekrar teşekkürler.

Not: Dosyayı tekrar ekliyorum.
 

Ekli dosyalar

sonuç çok yakın çıkıyor 0,01 hata ile buluyor
 
Son düzenleme:
Makro ile Fazla Mesai Hesaplama

Ve belirtmem gereken bir nokta daha var ;
Mevcut kod üzerinde yapacağınız değişiklikle, bin katı sorununu çözsek bile, geriye kalan mesai saati miktarı yinede işimi görmeyecek maalesef.
Çünkü fark sütununda ki, kabul edilebilir fark değeri (+,- 0,90) dan fazla olmamalı.
 
35,43 çıkıyor
 
Acaba kullandığımız excel sürümleri falan mı farklı, bende çok abartılı fark çıkıyor. Yani virgül ve nokta faklılığından dolayı, bendeki hesapta otuzbeşbinyüz, sizdekinde ise otuzbeşküsür çıkıyor galiba.

Şimdi size makroyu çalıştırdıktan sonraki dosya halini atıyorum, bakın lütfen.
 
kodun içindeki
Cells(i, 23).Value = deg & "," & Format(j, "00")

virgül olan yeri

Cells(i, 23).Value = deg & "." & Format(j, "00")

nokta ile değiştirin bakalım ne oluyor
 
bendeki çıkan sonucuda ben sana göndereyim
 
Son düzenleme:
Evet halit bey, sorun virgüldeymiş. Ama şimdilik sadece işin basit kısmını aşmışız,
aşmışız diyorum çünkü ;
birincisi : dosyada ki kişi sayısı 300 civarında olacak, yani makronun daha geniş bir alanı dikkate
alması gerekecek herhalde.
ikincisi : çalışanların bir çoğunun maaş tutarları birbirinden farklı, ben farklı bir maaş (net ödenecek),(bordro neti) girdiğimde makro sonuç vermiyor.
 
1 soruna cevaben
bunun yerine
For i = 3 To 4
For i = 3 To 300
yaparsan üçyüz satırı sorgular

2. sorun ile ilgili dokuzuncu sutun ve otuszsekizinci sutunları sorguluyor bu sutunlarda değer yoksa işlem yapmaz
 
Teşekkür ederim Halit bey,
Şu an tam işimi görecek gibi olmuş, emeğinize sağlık, iyi ki varsınız.

excel.web.tr ye de ayrıca teşekkür ederim.
 
iyi çalışmalar
 
Geri
Üst