VBA ile Topla.Çarpım Kodunu Tarih aralığında uygulama

Feylosof

Altın Üye
Katılım
24 Temmuz 2019
Mesajlar
439
Excel Vers. ve Dili
EXCEL 2010 TÜRKÇE
Altın Üyelik Bitiş Tarihi
19-12-2025
Merhaba Arkadaşlar.
Herkesin geçmiş bayramını tebrik ediyorum.
Daha önce başka bir konu ile alakalı olarak @Korhan Ayhan hocamızın yardımcı olduğu bir kodu kullanarak sütun aralığı yerine birinci satırda bulunan tarih aralığına göre toplama işlemi yapmak şekilde uyarlamaya çalıştım ama beceremedim. Tarih aralığı UserForm içinde bulunan TextBox1 ile TextBox2 ye girilmektedir.
 

Ekli dosyalar

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,136
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba Arkadaşlar.
Herkesin geçmiş bayramını tebrik ediyorum.
Daha önce başka bir konu ile alakalı olarak @Korhan Ayhan hocamızın yardımcı olduğu bir kodu kullanarak sütun aralığı yerine birinci satırda bulunan tarih aralığına göre toplama işlemi yapmak şekilde uyarlamaya çalıştım ama beceremedim. Tarih aralığı UserForm içinde bulunan TextBox1 ile TextBox2 ye girilmektedir.
Buradaki işlemi makro ile yapmaya neden uğraşıyorsunuz, doğrudan formül yazarken çok hızlı sonuç alabilirsiniz.

Ekli dosyayı inceleyebilirsiniz,
 

Ekli dosyalar

Feylosof

Altın Üye
Katılım
24 Temmuz 2019
Mesajlar
439
Excel Vers. ve Dili
EXCEL 2010 TÜRKÇE
Altın Üyelik Bitiş Tarihi
19-12-2025
Buradaki işlemi makro ile yapmaya neden uğraşıyorsunuz, doğrudan formül yazarken çok hızlı sonuç alabilirsiniz.

Ekli dosyayı inceleyebilirsiniz,
@tamer42 ilginiz için teşekkür ediyorum. Sistemden alınan sayfanın yapısını bozmadan. Bu işlemi gerçekleştirmek istiyorum. Sütun aralığına göre bu işlemi yapabiliyorum. Dosyada örneği mevcuttur. Amacım tarih aralığını kullanarak bu toplam işlemini yapmak istiyorum.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,908
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Buradaki detay hem tarihin ilgili aralıkta olup olmadığı hem de ayın kaçıncı haftası olduğuyla ilgili..

MODUL sayfasında P-S sütun aralığında hangi sonuçları görmek istiyorsunuz. (Haftalık Toplam-Genel Toplam)
 

Feylosof

Altın Üye
Katılım
24 Temmuz 2019
Mesajlar
439
Excel Vers. ve Dili
EXCEL 2010 TÜRKÇE
Altın Üyelik Bitiş Tarihi
19-12-2025
Sayın @Korhan Ayhan hocam öncelikle çok teşekkür ederim. Sizden gelecek cevabı heyecanla beklediğimi itiraf etmeliyim. Dosyamın daha sade olması için bazı sayfaları silmiştim örneğin BİLSA. İlgili sütunlara istediğim tarih aralıklarını aktardıktan sonra R VE S sütunlarına iki ayrı sayfadan (mebbis-bilsa) personelin aylık genel toplamını aldırmak istiyorum. Bir sütunda aynı isimler birden fazla oluğu için onların da genel toplamını almak istiyorum. Sadece MEBBİS sayfasındaki veriler aktarılsa yeter değerli hocam; diğer sayfayı uyarlarım zannımca. P ve Q sütunları için bir şey yapılmasa da olur.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,908
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kendi dosyanıza göre uyarlarsınız..

C++:
Private Sub CommandButton6_Click()
    Dim S1 As Worksheet, S2 As Worksheet
    Dim T1 As Date, T2 As Date
    Dim Hafta_No As Byte, X As Long, Y As Integer
    Dim Last_Row_1 As Long, Last_Row_2 As Long
    
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = False
    
    On Error GoTo 10
    
    Set S1 = Sheets("MEBBİS")
    Set S2 = Sheets("MODUL")
    
    Last_Row_1 = S1.Cells(S1.Rows.Count, 1).End(3).Row
    Last_Row_2 = S2.Cells(S2.Rows.Count, 5).End(3).Row
    
    T1 = CDate(TextBox1)
    T2 = CDate(TextBox2)

    For X = 6 To 14 Step 2
        S2.Cells(4, X).Resize(S2.Rows.Count - 3).ClearContents
    Next
        
    For X = T1 To T2
        Hafta_No = Evaluate("=WEEKNUM(" & X & ",2)-WEEKNUM(EOMONTH(" & X & ",-1),2)+1")
    
        For Y = 4 To Last_Row_2
            Formul = "=SUMPRODUCT((MEBBİS!F1:AN1>=" & X & ")*(MEBBİS!F1:AN1<=" & X & ")*(MEBBİS!A2:A" & Last_Row_1 & "='" & S2.Name & "'!E" & Y & "),(MEBBİS!F2:AN" & Last_Row_1 & "))"
            
            Select Case Hafta_No
                Case 1: S2.Cells(Y, 6) = S2.Cells(Y, 6) + Evaluate(Formul)
                Case 2: S2.Cells(Y, 8) = S2.Cells(Y, 8) + Evaluate(Formul)
                Case 3: S2.Cells(Y, 10) = S2.Cells(Y, 10) + Evaluate(Formul)
                Case 4: S2.Cells(Y, 12) = S2.Cells(Y, 12) + Evaluate(Formul)
                Case 5: S2.Cells(Y, 14) = S2.Cells(Y, 14) + Evaluate(Formul)
            End Select
        Next
    Next

10  Set S1 = Nothing
    Set S2 = Nothing
        
    Application.EnableEvents = True
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
End Sub
 

Feylosof

Altın Üye
Katılım
24 Temmuz 2019
Mesajlar
439
Excel Vers. ve Dili
EXCEL 2010 TÜRKÇE
Altın Üyelik Bitiş Tarihi
19-12-2025
@Korhan Ayhan üstadım size minnet ve teşekkürlerimi sunuyorum. Sağlık ve esenlikler diliyorum.
 

Feylosof

Altın Üye
Katılım
24 Temmuz 2019
Mesajlar
439
Excel Vers. ve Dili
EXCEL 2010 TÜRKÇE
Altın Üyelik Bitiş Tarihi
19-12-2025
@Korhan Ayhan hocam çok özür dilerim. veri akarımını F sütunundan değil, H sütunundan itibaren doldurdu ve ilk 4 haftayı aldı 5. haftayı almadı. Bir bakabilir misiniz
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,908
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bunun sebebi şu;

Sizin MEBBİS sayfasındaki tarihler 03.03.2025 tarihinden başlıyor. Görselde bu tarih MART ayının 2. haftasına denk geliyor.

Siz aktarım yaptığınızda H sütunu 2. hafta olduğu için veriler bu şekilde aktarılıyor.

256859
 

Feylosof

Altın Üye
Katılım
24 Temmuz 2019
Mesajlar
439
Excel Vers. ve Dili
EXCEL 2010 TÜRKÇE
Altın Üyelik Bitiş Tarihi
19-12-2025
Tamam hocam anlaşıldı. Çok teşekkür ederim.
 
Üst