• DİKKAT

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

Koşullu toplama

Katılım
10 Nisan 2014
Mesajlar
113
Excel Vers. ve Dili
2013 ingilizce
Arkadaşlar merhaba

Öncelikle bu sitede seneler boyunca her soruma cevap yazma nezaketi gösteren desteğini esirgemeyen, emek ve sabır gösterip sorularımı cevaplayan herkese çok teşekkür etmek istiyorum İyi ki varsınız:)

Excel çalışma sayfasında toplama yaptırmak istiyorum ancak ön koşul olarak aşağıdaki ilk sarı boyalı ilk satıra kadar olan hücreleri toplayacak Örneğin A satırı sarı boyalı D satırıda sarı boyalı H satırıda sarı boyalı olduğunu düşünelim A5 hücresine aşağıdaki hücreler toplamını yapacağım zaman(örneğe göre b5,c5 i toplayıp A5 e toplamı yazacak) b5 ve c5 i toplasın yanlışlıkla bir alt satırda sarı boyalı olan D5 i toplamasın Benzer şekilde sarı boyalı satır olan D satırında D7 hücresinde alt toplamları alırken e7,f7,g7 yi toplasın Sarı boyalı olan H7 yi toplamasın

Üzerinde çalıştığımız Çalışma kitabımızda çok data var ve bu dataları giren arkadaşlar toplam formülünü yazarken kaydırıyorlar ve altta bulunan toplanması gereken hücreler dışında daha altsatırda sarı renkli boyalı olan diğer iş kaleminin üst toplamını da topluyorlar Dolayısıyla hatalı raporlar üretiliyor

Örnek bir dosya ekledim

İsteğim şu ki makroda bir formül oluşturabilirmiyiz İsmi "tsum" olsun ve bu tsum formülü ile toplama yapıldığı Zaman altında bulunan ilk sarı boyalı hücreye kadar toplama yapsın

Gerçekten karışık oldu Umarım derdimi anlatabilmişimdir
 

Ekli dosyalar

Son düzenleme:
Siz yinede el ile hesaplaması yapılmış küçük bir dosya ekleyin ki daha iyi anlaşılsın.
 
Merhaba.

Aşağıdaki şekilde bir alternatif önerim olacak.

Alt taraftan sayfa adına fareyle sağ tıklayıp KOD GÖRÜNTÜLEyi seçtiğinizde açılan ekranın
sağındaki boş alana aşağıdaki kod'u yapıştırın.

Formül yazmak yerine, toplam alacağınız hücreye (tek koşul, sarı boyalı olması) fareyle çift tıklarsanız,
bir sonraki sarı zeminli hücreye kadarki kısmın toplamını alır ve toplanan hücrelerin de rengini gri yapar.

Dikkat edilecek husus, toplam alındıktan sonra sarı zeminli olmayan hücrelerdeki değerler değişirse sonuç güncellenmez
(bu konuya da fırsat olursa bakarım).
.
Kod:
[FONT="Arial Narrow"][B]Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Interior.ColorIndex <> 6 Then Exit Sub[/B]
For satır = Target.Row + 1 To Cells(65536, Target.Column).End(3).Row
If Cells(satır, Target.Column).Interior.ColorIndex = 6 Then Exit For
Cells(satır, Target.Column).Interior.ColorIndex = 15
Top = Top + Cells(satır, Target.Column): Next: Target = Top: Cancel = True
[B]End Sub[/B][/FONT]
.
 
Merhaba.

Aşağıdaki şekilde bir alternatif önerim olacak.

Alt taraftan sayfa adına fareyle sağ tıklayıp KOD GÖRÜNTÜLEyi seçtiğinizde açılan ekranın
sağındaki boş alana aşağıdaki kod'u yapıştırın.

Formül yazmak yerine, toplam alacağınız hücreye (tek koşul, sarı boyalı olması) fareyle çift tıklarsanız,
bir sonraki sarı zeminli hücreye kadarki kısmın toplamını alır ve toplanan hücrelerin de rengini gri yapar.

Dikkat edilecek husus, toplam alındıktan sonra sarı zeminli olmayan hücrelerdeki değerler değişirse sonuç güncellenmez
(bu konuya da fırsat olursa bakarım).
.
Kod:
[FONT="Arial Narrow"][B]Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Interior.ColorIndex <> 6 Then Exit Sub[/B]
For satır = Target.Row + 1 To Cells(65536, Target.Column).End(3).Row
If Cells(satır, Target.Column).Interior.ColorIndex = 6 Then Exit For
Cells(satır, Target.Column).Interior.ColorIndex = 15
Top = Top + Cells(satır, Target.Column): Next: Target = Top: Cancel = True
[B]End Sub[/B][/FONT]
.

Ömer Bey merhaba,

Çok teşekkür ederim. Alt değerler değiştiği için toplamın bu değerler güncellenince değişmesi gerekiyor. Bu konuda da yardımcı olabilirseniz çok sevinirim. Ayrıca bu sarı boyalı hücrelerden bazılarında çift tıklanında userform açılıyor. Kodu çalıştırmak için çift tıklama yerine ctrl+f gibi bir atama yapabilir miyiz?
 
Merhaba.

Örnek belgenizi, kullandığınız başka makrolar da varsa; onlar da içinde ve çalışır durumda olacak şekilde yenileyerek güncellerseniz daha hızlı sonuca ulaşacağınızı düşünüyorum.
.
 
Geri
Üst