• DİKKAT

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

Excell mesai hesaplama hakkında.

  • Konbuyu başlatan Konbuyu başlatan semi16
  • Başlangıç tarihi Başlangıç tarihi
Katılım
11 Ocak 2018
Mesajlar
21
Excel Vers. ve Dili
2016
Arkadaşlar merhaba daha önce konusunu açmıştım fakat farklı bir anlaşılmayan başlık ile açtım. Acemilik ile bazı kabalıklar ettim bu yüzden bu konuyu açıyorum. Konu gerçekten acildir. Cevap verebilen birisi olursa çok sevinirim.

Konu şöyleki aşağıdaki resimde görüldüğü gibi örnek bir excell sayfasına maaşlar ve isimler giriliyor. Aşağıda olan satırlara mesai saatleri giriliyor. Girilen mesai saatine göre excell in saate karşılık gelen mesai ücretini hesaplamasını istiyorum. Yani: Yani yazan maaşı alacak 225 e bölerek saatlik ücrete çevirecek sonra bunu 1.5 ile çarparak saatlik ücretin %50 mesaili halini bulacak ve ilgili satıra girilen mesai saati ile çarparak bunu aynı satıra yazacak.

Daha önce şu kod kullanıldı fakat tek satır ve sütun için çalışıyor. Bunu tüm mesai saati girilen satır ve sütuna uygulamam gerekli. Formül ile de yazılabilir. Ama başaramadım.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim maas As Double, islem As Double, deg As Double
If Not Intersect(Target, [B3]) Is Nothing Then
If Target.Value = "" Then Exit Sub
If [B2].Value = "" Then Exit Sub
maas = [B2].Value
deg = Target.Value
Application.EnableEvents = False
islem = ((maas / 225) * (2)) * deg
Target.Value = islem
Application.EnableEvents = True
End If
End Sub


Yardımcı olursanız çok sevinirim. Şimdiden herkese teşekkürler..

MdlWDM.png
 
Eklediğiniz resme göre Ahmet'in maaş hesaplaması şöyle olmalı;

B3 hücresine aşağıdaki formülü yazın.
(Fazla Mesai Saati hangi hücreye giriliyorsa F3 yazan yeri o hücre adresi ile değiştirin.)
=(((B2/225)*1,5)*F3)
 
Yazdığınız mesaja istinaden önceki mesajlarınıza baktım ve farklı bir şey istemişsiniz sanırım. Aşağıdaki kodu deneyebilirsiniz. Yazdığınız mesai saatleri maaşa göre dönüştürülecektir.
Yalnız butona 2.kez basarsanız hatalı işlem döndürür, bilginize...

Kod:
Sub Hesapla()
For a = 2 To Range("XFD2").End(xlToLeft).Column
b = (((Cells(2, a) / 225) * 1.5) * Cells(3, a))
Cells(3, a) = Val(b) 'Sadece 3.satırda işlem yapar

'Dördüncü ve sonraki satırlarda işlem yapmak isterseniz 3'ü 4 yapın ve bu şekilde satırlar ekleyerek devam edin.
'Aşağıdaki gibi... Veya işlem yapılacak satır sayısı çok fazla ise kodda revizyon yapılabilir. Bilginize...
'Cells(4, a) = Val(b)

Next
End Sub
 
Çok teşekkür ederim cevap için yarın deneyeceğim. Çalışır ise mesajı düzenlerim :)

Tekrar teşekkürler iyi geceler
 
Yazdığınız mesaja istinaden önceki mesajlarınıza baktım ve farklı bir şey istemişsiniz sanırım. Aşağıdaki kodu deneyebilirsiniz. Yazdığınız mesai saatleri maaşa göre dönüştürülecektir.
Yalnız butona 2.kez basarsanız hatalı işlem döndürür, bilginize...

Kod:
Sub Hesapla()
For a = 2 To Range("XFD2").End(xlToLeft).Column
b = (((Cells(2, a) / 225) * 1.5) * Cells(3, a))
Cells(3, a) = Val(b) 'Sadece 3.satırda işlem yapar

'Dördüncü ve sonraki satırlarda işlem yapmak isterseniz 3'ü 4 yapın ve bu şekilde satırlar ekleyerek devam edin.
'Aşağıdaki gibi... Veya işlem yapılacak satır sayısı çok fazla ise kodda revizyon yapılabilir. Bilginize...
'Cells(4, a) = Val(b)

Next
End Sub

Günaydın,

Verdiğiniz kodu denedim çalışmadı veya ben çalıştıramadım. Ayrıca dediğiniz gibi bir çok satır ve sütunda çalışması gerekiyor. daha önce yazdığım kod tek satır ve sütunda çalışıyordu. Bunu range komutu ile diğer tüm satır ve sütunlara atabilir miyiz ?
 
Arkadaşlar,


Private Sub Worksheet_Change(ByVal Target As Range)
Dim maas As Double, islem As Double, deg As Double
If Not Intersect(Target, [B3:B18]) Is Nothing Then
If Target.Value = "" Then Exit Sub
If [B2].Value = "" Then Exit Sub
maas = [B2].Value
deg = Target.Value
Application.EnableEvents = False
islem = ((maas / 225) * (2)) * deg
Target.Value = islem
Application.EnableEvents = True
End If
End Sub


Yukarıda resmi görülen excelle bu komutu uygulayarak. B satır ve sütununda işlemimi uyguluyorum. Fakat C,D ve devamına bunu nasıl uygularım ?
 
Verdiğim kod zaten istediginizi yapıyor. Kodu bir butona bağlamaniz gerekmektedir.
 
Cevap için teşekkürler..

Verdiğiniz kodu ben uygulayamadım sanırım. Butona bağlayamadım yani. Eğer çok satır ve sütuna uygulanacaksa kod değişebilir demiştiniz. Bu durumda nasıl bir değişiklik yapmak gerekecek.
 
Hazırlanmış olan örnek dosya ektedir. Kod bölümünde açıklama mevcuttur. Kodlara excel'i açtıktan sonra klavyenizden Alt + F11 tuşlarına basarak ulaşabilirsiniz.

Dosyanızın (gerçek olmayan örnek veriler olmak kaydıyla) birebir benzeyen bir örneğini eklemiş olsaydınız, daha net ve isabetli sonuçlar elde edilebilirdi. Umarım bu örneği kendinize uyarlayabilirsiniz.

Dosyanın linki;
http://dosya.co/ke7npezqblvj/Kitap1.xlsm.html
Not : İndirme butonu, açılan sayfada resmin altındadır.
 
Cevaplarınız ve uğraşlarınız için çok teşekkür ederim. Uygulamaya çalışacağım kendi excell çalışmama.

Tek sorum düğmeye yanlışlık ile basıldığında geri dönüş olmuyor bunu sağlamanın bir yolu varmı :)
 
Kodlar çok güzel şekilde çalışmakta teşekkür ederim :)
 
Rica ederim. Umarım yardımcı olabilmişimdir.
Sorunuza gelince, ekteki dosyayı indirip deneyiniz. Düğmeye istediğiniz kadar basabilirsiniz.

http://dosya.co/nm3vddfd1qbi/Kitap1.xlsm.html

Tekrar rahatsız ediyorum ama son bir adım kaldı excell in istediğim gibi olmasına.

Aşağıdaki resimde görüldüğü gibi bir tablom var. Burada verdiğiniz kodlar çalışıyor fakat şöyle bir sorunum var. En sonda bulunan sütunun hesaplamaya girmemesi gerekiyor. Buranın saat hesabı dışında kalıp girilen değerlere göre günlük toplam saati ve sayfa 2 de toplam ücreti hesaplanması isteniyor. Son sütunu formülden nasıl çıkaracağımı bilsem geri formülü ekleyeceğim fakat son sütunu kod dan çıkaramadım.

Sayfa -1 de girilen değerleri en sağdaki sütuna toplaması gerekiyor.

VrANVP.png


Sayfa-2 de mesai ücretlerini en sağdaki sütuna toplaması gerekiyor.

rOjp8z.png
 
Merhabalar,

Eklemiş olduğunuz resme göre, aşağıdaki kodu kullanabilirsiniz.

Kod:
Sub Düğme1_Tıklat()
For c = 3 To 9
For a = 2 To Range("XFD2").End(xlToLeft).Column - 1
b = (((Cells(2, a) / 225) * 1.5) * Cells(c, a))
Sheets(2).Cells(c, a) = Val(b)
Next: Next
Sheets(2).Select

d = [XFD1].End(xlToLeft).Column
For e = 2 To [A1048576].End(xlUp).Row
For f = 2 To d - 1
Cells(e, d) = Cells(e, d) + Cells(e, f)
Next: Next
End Sub
 
Tekrar teşekkürler her şeyi siz yaptınız bu tablo da :)

Daha önce diğer tablolarda yaşanan sorun bunda var ama şuan her hesapla dediğimizde son satırı yeniden işleme alıyor. Diğer yolladıklarınız la karşılaştırıp yapmaya çalışacağım.
 
Çok teşekkürler eklediğiniz satırı excell e ekledim ve tam istediğim gibi oldu.

Başka bir sorunum kalmadı gibi çok teşekkür ediyorum yardımlarınız için..
 
Rica ederim. Yardımcı olabildiysek ne mutlu.
 
Geri
Üst