28 Şubat 2015 Cumartesi

Excel Soru-Cevap Vol16

Soru: Mantığı çok basit olan bir toplama işlemini yapamadım. 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: 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

Hiç yorum yok:

Yorum Gönder