Haftasonu hesaplama

Katılım
3 Eylül 2021
Mesajlar
30
Excel Vers. ve Dili
Microsoft Office Professional Plus 2016 / Türkçe
Herkese kolay gelsin.
ekte gönderemiyorum ama kabaca bahsetmem gerekirse yapmaya çalıştığım şu .;

haftasonlarına girilen mesaiyi duble hesaplamak istiyorum. her ayın haftagünleri deeğişken olduğu için bunu formülle yapmam gerekiyor. nasıl bir çözüm bulabilirim ?
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Kendinize uyarlayınız.
Kod:
Sub haftasonumesai()
Dim gun As Single, i As Date, mesai As Integer, mesailer As String
mesai = 4
For i = Date To DateSerial(Year(Date), Month(Date) + 1, 1) -1
    If Weekday(i, 2) > 5 Then
        mesailer = mesailer & vbLf & i & " :" & mesai * 2
    End If
Next
MsgBox mesailer

End Sub
 
Katılım
3 Eylül 2021
Mesajlar
30
Excel Vers. ve Dili
Microsoft Office Professional Plus 2016 / Türkçe
Haftasonlarini - haftagunu formülü ile kırmızı yapıyorum. Oraya yazdığım mesai a vardiyası 100 üzerinden hesaplanıyor. Haftasonu a vardiyası olursa 200 olmasını ist
Kendinize uyarlayınız.
Kod:
Sub haftasonumesai()
Dim gun As Single, i As Date, mesai As Integer, mesailer As String
mesai = 4
For i = Date To DateSerial(Year(Date), Month(Date) + 1, 1) -1
    If Weekday(i, 2) > 5 Then
        mesailer = mesailer & vbLf & i & " :" & mesai * 2
    End If
Next
MsgBox mesailer

End Sub
hocam siz bir excel paylaşsanız ona göre bn kndimde düzenlesem ? yapamadım çünkü
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Siz örnek bir dosya eklerseniz ben ve arkadaşlar bakabiliriz.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Dosya yükleme sitelerinden bir tanesinden link verebilirsiniz.
 
Katılım
3 Eylül 2021
Mesajlar
30
Excel Vers. ve Dili
Microsoft Office Professional Plus 2016 / Türkçe
Dosya yükleme sitelerinden bir tanesinden link verebilirsiniz.
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo hata
If Intersect(Target, [C5:I10]) Is Nothing Then Exit Sub
If Target.Value = "Rapor" And Target.Interior.ColorIndex = 16 Then
Target.Value = "Rpr"
Exit Sub
End If
hata:
ActiveSheet.Range("H5:I10").Replace what:="Rapor", Replacement:="Rpr", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
ActiveSheet.Range("H5:I10").Interior.ColorIndex = 16
End Sub




aslında böyle bir makro yapmışlardı beenim içim. fakat burda gri renkli h5 ı10 hücrelrine yazılan rapor yazısını rpr yapıyor. benim tablomda gri tenkli haftasonları değişken. üstteki makronun sabit değilde değişkene uygun olarak uyarlanması aslında işimi fazlasıyla görücektir. gönderdiğim tabloda ay seçince haftasonları da haliyle değişiyor. ordaki koyu gri alanlara Rapor yazınca Rpr olarak kısaltırsa hesaplama formülünden dee deaktif olacaktır ve bu yeterli gelir bana hocalarım
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Mesailer AI sütununa ve AJ Sütununamı yazılıyor?
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
10 ncu tagda D7 H7 ye yazıyor demişsiniz.Şimdi ise ayın 31 i yazıyor dediniz.Bir çelişki var.
 
Katılım
3 Eylül 2021
Mesajlar
30
Excel Vers. ve Dili
Microsoft Office Professional Plus 2016 / Türkçe
10 ncu tagda D7 H7 ye yazıyor demişsiniz.Şimdi ise ayın 31 i yazıyor dediniz.Bir çelişki var.
Hocam tekrar yazayım karışıklık oldu sanırım.
1. Personelin mesailerinin yazıldığı hücreler D7 ile AH7 arasındaki hücreler. AI7 hücresi (D7 ile AH7 arasındaki tutulan) mesailerin toplamı. AJ7 de ise hangi ay seçili ise, o ayın haftaici günleri*7 hesaplamasından çıkan çalışma saati. AJ7-AI7 ise fazla mesaiyi veriyor.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Geç oldu.Yarına kaldı.İyi geceler.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Dosyanız linktedir.
Hafta sonları D leri 14 olarak hesaplıyor.
K T F
Kod:
Function mesaisay(aralik As Range)
Dim hcr As Range, mesai As Integer
Application.Volatile
For Each hcr In aralik
    If Weekday(Cells(5, hcr.Column), 2) > 5 And hcr.Value = "D" Then
        mesai = mesai + 1
    End If
Next
mesaisay = mesai * 14
End Function

DOSYAYI İNDİR
 
Üst