• DİKKAT

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

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

Katılım
24 Temmuz 2019
Mesajlar
484
Excel Vers. ve Dili
EXCEL 2010 TÜRKÇE
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

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

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.
 
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)
 
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.
 
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
 
@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
 
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
 
Tamam hocam anlaşıldı. Çok teşekkür ederim.
 
Geri
Üst