Yandaki hücrelere formülü ilerletmek

Katılım
7 Ocak 2020
Mesajlar
11
Excel Vers. ve Dili
excel 2013
Merhaba,

İlk defa makro ile çoketopla yaptım. Yapmış olduğum işlem sadece aşağıdaki işlemi yapıyor.
Ozet sayfasında C8 hücresindeki Ocak ile H8 hücresindeki Dikey Montaj a bakarak h.puantaj sayfasından Q Sütununu topluyor ve Ozet sayfası H10 hücresine yazıyor.

İsteğim; Ozet sayfası I10 ile U10 arası içinde bu işlemi yapabilmek. Yukarıda yazdığımı her hücre için yeniden mi yazmalıyım yoksa kısa bir işlemi var mı?

Ayrıca Ozet sayfası C8 hücresindeki ay değiştiğinde makro otomatik olarak diğer hücrelerdeki veriyi güncelleyebilir mi?

Yardımlarınız için şimdiden teşekkür eder, iyi çalışmalar dilerim.

 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba

Deneyiniz.
Kod:
Sub OzetToplamFazlaMesai()
    Dim Arg1 As Range 'the range i want to sum
    Dim Arg2 As Range 'criteria range
    Dim Arg3 As Variant 'the criteria
    Dim Arg4 As Range 'criteria range
    Dim Arg5 As Variant 'the criteria
    Dim Arg6 As Range 'criteria range
    Dim Arg7 As Variant 'the criteria


    'Arg1 and Arg2 must be the same size
    Set Arg1 = Sheets("h.puantaj").Range("Q:Q")
    Set Arg2 = Sheets("h.puantaj").Range("AP:AP") 'H8
    Set Arg4 = Sheets("h.puantaj").Range("AJ:AJ") 'C8
    Set Arg6 = Sheets("h.puantaj").Range("AR:AR") 'GİRECEK


    'this is the criteria
    'Arg3 = Sheets("Ozet").Range("H8").Value 'c2:c100 arası 'bu şekilde de yazılabilir.  Arg3 = "=Ayşe" 'Value hücreden değeri alma
    Arg5 = Sheets("Ozet").Range("C8").Value 'd2:d100 arası 'bu şekilde de yazılabilir.  Arg3 = "=Ocak"
    Arg7 = "=girecek"
    
    Dim ws As Worksheet
    Set ws = ActiveSheet
    Dim i As Integer
    For i = 8 To 21
        Arg3 = Sheets("Ozet").Cells(8, i).Value
        Worksheets("Ozet").Cells(10, i).Value = Application.WorksheetFunction.SumIfs(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7) ' bu şekilde de yazıldığında aynı sayfaya gönderiyor ws.Cells(i, 8).Value
    Next
End Sub
 
Katılım
7 Ocak 2020
Mesajlar
11
Excel Vers. ve Dili
excel 2013
Ömer Bey Merhaba,

Öncelikli olarak yardımınız için çok teşekkür ederim.
Peki Ozet sayfasındaki C8 hücresindeki ayı değiştirdiğimizde makro otomatik olarak çalışıp hücrelerdeki değerleri değiştirir mi?
Bunu yapabilir miyiz?
Emeğinize sağlık, iyi çalışmalar.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Aşağıdaki kodları özet sayfasının kod bölümüne kopyalayıp dener misiniz.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, [C8]) Is Nothing Then Exit Sub
    
    Dim Arg1 As Range 'the range i want to sum
    Dim Arg2 As Range 'criteria range
    Dim Arg3 As Variant 'the criteria
    Dim Arg4 As Range 'criteria range
    Dim Arg5 As Variant 'the criteria
    Dim Arg6 As Range 'criteria range
    Dim Arg7 As Variant 'the criteria


    'Arg1 and Arg2 must be the same size
    Set Arg1 = Sheets("h.puantaj").Range("Q:Q")
    Set Arg2 = Sheets("h.puantaj").Range("AP:AP") 'H8
    Set Arg4 = Sheets("h.puantaj").Range("AJ:AJ") 'C8
    Set Arg6 = Sheets("h.puantaj").Range("AR:AR") 'GİRECEK


    'this is the criteria
    Arg3 = Sheets("Ozet").Range("H8").Value 'c2:c100 arası 'bu şekilde de yazılabilir.  Arg3 = "=Ayşe" 'Value hücreden değeri alma
    Arg5 = Sheets("Ozet").Range("C8").Value 'd2:d100 arası 'bu şekilde de yazılabilir.  Arg3 = "=Ocak"
    Arg7 = "=girecek"
    
    Dim ws As Worksheet
    Set ws = ActiveSheet
    Dim i As Integer
    For i = 10 To 10
        Worksheets("Ozet").Cells(i, 8).Value = Application.WorksheetFunction.SumIfs(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7) ' bu şekilde de yazıldığında aynı sayfaya gönderiyor ws.Cells(i, 8).Value
    Next
    
End Sub
 
Katılım
7 Ocak 2020
Mesajlar
11
Excel Vers. ve Dili
excel 2013
Ömer Bey,

Çok teşekkür ederim.
İyi çalışmalar.
 
Üst