Soru Renklere Göre Tarihe Dayalı Toplam Alma

Katılım
9 Ocak 2011
Mesajlar
354
Excel Vers. ve Dili
2007 Türkçe
Altın Üyelik Bitiş Tarihi
01-07-2023
Merhaba
Ekli dosyada aynı sayfada Renklere göre toplam alabiliyorum ama başka bir sayfada iken diyelimki
1.Sayfadaki tutarları 2.Sayfaya Renklere Göre Tarihe Dayalı Toplam almak istediğimde Makro çalışmıyor.
Uzman arkadaşlar konu ile ilgili yardımcı olurlarsa minnettar olurum.

Bu Soruyu farklı bölümlerde dile getirmiştim ama ayrı olarak sorulması gerekir diye yeniden konu açtım.
Ancak eskileri silemedim kusura bakmayın.
 

Ekli dosyalar

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,701
Excel Vers. ve Dili
Excel 2019 Türkçe
Kullanıcı Tanımlı Fonksiyonu eklemeniz gerekiyor.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,359
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba
İnanın söylediğinizden birşey anlamadım.
Nasıl yapmam gerektiği veya verdiğim dosyada yapmanız mümkünmü.
Excelde RenkTopla diye bir fonksiyon yok, sizin kullandığınız fonksiyon kullanıcı tanımlı fonksiyon yani makro ile oluşturulmuş fonksiyon.
Sözünü ettiğim Renktopla fonksiyonu addins dizininde olması gerekiyor, bu yoksa doğal olarak hata alırsınız.

Kullandığınız bu fonksiyonu bilgisayarınıza eklemelisiniz ya da ekli ise kullanıma hazır hale getirmelisiniz.

Bu konuda çok örnek var, araştırabilirsiniz.
 
Katılım
9 Ocak 2011
Mesajlar
354
Excel Vers. ve Dili
2007 Türkçe
Altın Üyelik Bitiş Tarihi
01-07-2023
Excelde RenkTopla diye bir fonksiyon yok, sizin kullandığınız fonksiyon kullanıcı tanımlı fonksiyon yani makro ile oluşturulmuş fonksiyon.
Sözünü ettiğim Renktopla fonksiyonu addins dizininde olması gerekiyor, bu yoksa doğal olarak hata alırsınız.

Kullandığınız bu fonksiyonu bilgisayarınıza eklemelisiniz ya da ekli ise kullanıma hazır hale getirmelisiniz.

Bu konuda çok örnek var, araştırabilirsiniz.
Zaten "RenkTopla.xla" dosyam "AddIns" Klasöründe Toplam alıyorum sıkıntım yok
Farklı sayfada Tarihe dayalı Renklere göre Toplam almak istiyorum.
Örnek dosyamda 2.Sayfadaki yere 1.Sayfadaki verilerin Tarihe dayalı toplamı.
Dosya belki indirenlerde çalışmayabilir bende çalışıyor. Bu önemli değil. İstediğim
Makro veya Formül nasıl olmalı.
 
Son düzenleme:
Katılım
9 Ocak 2011
Mesajlar
354
Excel Vers. ve Dili
2007 Türkçe
Altın Üyelik Bitiş Tarihi
01-07-2023
Merhaba
Dosyayı Biraz Daha anlaşılır hale getirdim. Giderler Sayfasında eğer Satır numaralarına göre "Renklere Göre Topla" dediğimde
Makro ile Topluyor ancak Tarihe Göre Topla Dediğimde Formül çalışmıyor Kod "Giderler Sayfası" B6 Hücresindeki gibi olunca
çalışmıyor bir yanlışlık yapıyorum ama bulamadım.
Lütfen Yardımlarınızı esirgemeyin ayrıca herkese lazım olabilir.
Şimdiden Teşekkürler
 

Ekli dosyalar

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,359
Excel Vers. ve Dili
Ofis 365 Türkçe
Buraya eklediğiniz dosyada kullandığınız KTF ler olmadığından kim kim ne önerebilir ki?
 
Son düzenleme:

Korhan Ayhan

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

Dosyanıza göre kullanım şekli;

B5;

C++:
=K_RTOPLA(KasaHesap!$C$5:$D$412;$A5;KasaHesap!$A$5:$A$412;">="&B$4;KasaHesap!$A$5:$A$412;"<="&SERİAY(B$4;0))

KTF kodları;

C++:
Option Explicit

Function K_RTOPLA(Toplanacak_Alan As Range, Renk_Kodu As Variant, _
    Kriter_Alanı_1 As Range, Kriter_1 As Variant, _
    Kriter_Alanı_2 As Range, Kriter_2 As Variant)

    Dim Veri As Range, Sütun_Say As Integer, Say As Long

    Application.Volatile
    
    Say = 1
    
    For Each Veri In Toplanacak_Alan
        Sütun_Say = Sütun_Say + 1
        If Sütun_Say > Toplanacak_Alan.Columns.Count Then
            Say = Say + 1
            Sütun_Say = 1
        End If
        If Veri.Font.Color = Renk_Kodu.Font.Color Then
            If Evaluate(CLng(Kriter_Alanı_1.Cells(Say, 1)) & Kriter_1) Then
                If Evaluate(CLng(Kriter_Alanı_2.Cells(Say, 1)) & Kriter_2) Then
                    K_RTOPLA = K_RTOPLA + Veri.Value
                End If
            End If
        End If
    Next
End Function
 
Katılım
9 Ocak 2011
Mesajlar
354
Excel Vers. ve Dili
2007 Türkçe
Altın Üyelik Bitiş Tarihi
01-07-2023
Çok Teşekkür ederim ellerinize sağlık hocam gayet güzel çalıştı.
 
Katılım
9 Ocak 2011
Mesajlar
354
Excel Vers. ve Dili
2007 Türkçe
Altın Üyelik Bitiş Tarihi
01-07-2023
Korhan Hocam tekrar merhaba
Evet verdiğiniz Makro gönderdiğim Listede çalıştı ancak başka bir listeye uyguladığımda çalıştıramadım
Listeler arasındaki fark Tarih sıralaması Makronun çalıştığı listede Tarihler Üstten Aşağıya doğru büyüyor.
Çalıştıramadığım listede Tarih Aşağıdan Üste doğru büyüyor birde tarih formatı "/" ile ayrılmış.
Bu Farklılık çalışmasına engelmidir.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,190
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Yorum için örnek verileri görmek gerekir.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,190
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Paylaştığınız belgedeki "hesaphareketleri" sayfası A sütununda ki veriler tarih gibi görünüyor fakat değiller. Excelde tarihler sayısal veri olduğu için hücre içinde sağa yanaşık görünürler. A sütununda sola hizalama yapılmış bunu kaldırıp kontrol edebilirsiniz.

Çözüm için A sütununda ki "/" sembollerini CTRL+H ile noktaya dönüştürüp sonuca gidebilirsiniz.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,190
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ek olarak fonksiyona küçük eklemeler yaptım. Bende bozuk veride de sonuç üretti.

C++:
Option Explicit

Function K_RTOPLA(Toplanacak_Alan As Range, Renk_Kodu As Variant, _
    Kriter_Alanı_1 As Range, Kriter_1 As Variant, _
    Kriter_Alanı_2 As Range, Kriter_2 As Variant)

    Dim Veri As Range, Sütun_Say As Integer, Say As Long

    Application.Volatile
    
    Say = 1
    
    For Each Veri In Toplanacak_Alan
        Sütun_Say = Sütun_Say + 1
        If Sütun_Say > Toplanacak_Alan.Columns.Count Then
            Say = Say + 1
            Sütun_Say = 1
        End If
        
        If Veri.Font.Color = Renk_Kodu.Font.Color Then
            If IsNumeric(Replace(Kriter_Alanı_1.Cells(Say, 1), "/", ".")) And _
                IsNumeric(Replace(Kriter_Alanı_2.Cells(Say, 1), "/", ".")) Then
                If Evaluate(CLng(CDate(Replace(Kriter_Alanı_1.Cells(Say, 1), "/", "."))) & Kriter_1) Then
                    If Evaluate(CLng(CDate(Replace(Kriter_Alanı_2.Cells(Say, 1), "/", "."))) & Kriter_2) Then
                        K_RTOPLA = K_RTOPLA + Veri.Value
                    End If
                End If
            End If
        End If
    Next
End Function
 
Katılım
9 Ocak 2011
Mesajlar
354
Excel Vers. ve Dili
2007 Türkçe
Altın Üyelik Bitiş Tarihi
01-07-2023
Korhan Hocam Sağolasınız
Şimdi deneme fırsatım oldu Tarih sütunuyla hiç oynamadan ilave verdiğiniz Fonksiyon bende de gayet güzel çalıştı.
Ellerinize aklınıza sağlık Teşekkürler
 
Katılım
9 Ocak 2011
Mesajlar
354
Excel Vers. ve Dili
2007 Türkçe
Altın Üyelik Bitiş Tarihi
01-07-2023
Ek olarak fonksiyona küçük eklemeler yaptım. Bende bozuk veride de sonuç üretti.
Hocam Tekrar merhaba
Fonksiyon gayet güzel çalışıyor. Ancak şöyle bir problem var Hücrelere veri girdikçe her girdiğim veriden sonra
bir süre beklemek zorunda kalıyorum Fonksiyon sürekli Aktif olarak çalışıyor buda haliyle işin çok yavaş yürümesine
sebep oluyor. Acaba bu Makronun sürekli aktif değil de sadece çalıştır dediğimde çalışmasını sağlamak mümkünmü
Zaten sayfada benim Makro çalıştırmak için Yenile diye kullandığım bir butonum var. Yada dosya açılışında ve kapanışında gibi
Bu şekilde Kodları değiştirmek mümkün olabilirmi. Şimdiden teşekkür ederim.
İyi çalışmalar
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,359
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Hesaplamayı otomatik değil el ileye ayarlayın.
hesaplamak istediğiniz zaman F9 tuşuna basın.
 
Üst