Anasayfa | Akademik Forum | Sizden Gelenler | Sipariş
Menü Açıklamaları
Sorular - Cevaplar
Makaleler
Makrolar
Yerleşik İşlevler
Animasyonlar
Yumurtalar
Fonksiyonlar
MTK Programlar
ExcelCE
Dosya İndir
Neler Yaptık?
İletişim
Sorular - Cevaplar
Soru-Cevap: 31 - M. Temel Korkmaz - 28.04.2004

Hücrenin üzerine devamlı toplama yaptırmak istiyorum ama olmuyor.
Soru - 31:
Yaklaşık 4 saat kadar uğraşmama rağmen mantığı çok basit olan bir toplama işlemini yapamadım. Hani Basic mantığından herkes " i= i+k " örneği bilir. Ben bunu Excel'de D10 hücresin formül bölümüne " =C10+D10 " şeklinde yazıyorum fakat Excel bunu bir türlü hesaplayamıyor.  Circular reference hatası veriyor.  Bu kadar basit bir işlemi nasıl yapamaz.

Cevap - 31:

Bu gayet normal. Formülü yazdığınız hücreyi referans vermişsiniz. Yani Excel'e şunu söylüyorsunuz. D10 hücresine de C10 ile D10 'u topla. D10 hücresindeki veri her toplamada değişir. Yani C10 1 olsun D10 da 2 Bunun normal toplamı 3 olacaktır. Ama siz referans olarak D10 hücresini verdiğiniz için her değişmede tekrar D10 u hesaba katacak. Döngüsel bir başvuru oluşacak. Hem sonra sizin verdiğiniz i=i+k örneği buna uygun değil. Bir atama yapıyorsunuz. Burada. eğer VBA sayfasına da, Range("D10")=Range("C10")+Range("D10") yazsaydınız. Problem olmazdı. Sizin de dediğiniz i=i+k örneğine uygun olurdu.

SONUÇ: Formül yazdığınız bir hücreyi formül içerisinde kullanamazsınız (genelde) kullanırsanız bu tür bir hata ile karşılaşırsınız.

Şimdi gelelim sorunuzun doğru cevabına. Aşağıdaki kodu eğer hesaplatma yapmak istediğiniz sayfanın koduna yazarsanız, istediğiniz sonuca ulaşırsınız.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$C$10" And Target.Value <> 0 Then
        Range("D10").Value = Range("D10").Value + Range("C10").Value
    End If
End Sub
Destek
M.ÖZTÜRK - Y.KARAMAN
Bu siteyi, "Hayatını çocuklarının Ahlâklı ve Dürüst yetişmesi için harcamış olan Cefakar ve Fedakar, Canım ANNEM'e adadım."
Copyright © 1998-2011 M. Temel Korkmaz - Tüm hakları saklıdır.