• DİKKAT

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

Bir hücrede sıra ile toplama

Katılım
14 Eylül 2008
Mesajlar
139
Excel Vers. ve Dili
Office 2003 Serisi
MErhaba üstadlar bir sorum var. Şimdi a1 ve a2 hücrelerim var diyelim. ben a1 hücresine veri girdikçe bu veri a2 de toplanacak. Mesela; 1. adım ; a1 e 10 yazdım, a2 hücresi = 10, 2. adım; a1 e 7 yazdım, a2 hücresi = 17 (10+7) olacak gibi. işlemler bu şekilde uzayacak belki a1 hücresine defalarca veri gireceğim ve sonuç olarak a2 hücresi devamlı bunları toplayacak. Bunun için nasıl bir çözüm geliştirilebilr?
 
Merhaba,
İlgili sayfanın kod bölümüne yazarak deneyin.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A1]) Is Nothing Then Exit Sub
    [A2] = [A2] + [A1]
End Sub
 
Hocam çok teşekkürler eline sağlık. Allah razı olsun.
 
Üstad kodu çalışmak istediğim sayfaya uyguladım ama bir problem çıktı. Ekte verdiğim dosyayı incelerseniz sorunu anlarsınız. Ben istiyordum ki sarıya boyadığım hücre bir solundaki hücreyle toplansın. Burada ki hatayı anlayamadım.
 

Ekli dosyalar

Mahir Bey'in müsadesiyle...

Öncelikle şunu belirteyim: ilk yazdığınız mesaj ile gönderdiğiniz dosya arasında hiçbir alâka yok.
Asıl dosyanız nasıl ise, ona göre bir yardım ve çözüm isteyiniz...
Aksi takdirde gördüğünüz gibi ikinci bir işlem yapılmaktadır. Dolayısıyla bu boşa harcanan vakit ve emek anlamına gelir.
A1 - A2'den bahsediyorsunuz ama dosyada A1 ve A2 ile ilgili yapılabilecek hiç birşey yok.
Düşünce olarak, bir tanesini söyleseniz ben gerisini yaparım diye düşünüyorsunuz belki ama keşke o kadar basit olsa.

Kodlar, siz nasıl isterseniz o şekilde yazılmaya çalışılır. Dosyanızı görmeden, bilmeden yazılan kodlarda da, çoğu zaman görüldüğü gibi böyle sorunlarla karşılaşılır.
Dikkat ederseniz imzamda: "Sonradan değişen dosyalarla ilgilenmiyorum" yazar.
Bu konunun ne kadar can sıkıcı bir durum olduğunu anlamanızı istiyorum...

Eğer dosyanızı yollamış olsaydınız; Mahir Bey size şöyle bir çözüm önerebilirdi;
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Interior.ColorIndex = 6 Then
        Target.Offset(0, -1).Value = Target.Value + Target.Offset(0, -1).Value
    End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range) olayı bir kere yazılır.
Yapılacak her işlem için ayrı ayrı yazamazsınız. Olayın altına yapmak istedikleriniz yazarsınız...

Not: Verdiğim kod: sarı dolgulu hücrelere bir değer girdiğinizde, solundaki hücrede toplar.
Yanlış anladıysam söyleyin düzelteyim...
 
Haklı olduğunuz noktalar var ben Mahir beyin iş yükünü azaltmak için kısa söylemşitim. Verdiğiniz kod için teşekkürler. Benim istediğim tam tersiydi. bir soldaki hücreyi sarı hücrede toplayacak.
 
Son düzenleme:
Dediğim gibi, iş yükünü azaltmış olmuyorsunuz... :)

Birde lütfen mesajınızdaki alıntıyı silebilir misiniz ? Gereksiz yer kaplıyor...

Kodları şu şekilde değiştirip deneyiniz;
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Offset(0, 1).Interior.ColorIndex = 6 Then
        Target.Offset(0, 1).Value = Target.Value + Target.Offset(0, 1).Value
    End If
End Sub
Kodlardaki mantığı anlarsanız bundan sonraki işlemleri kendiniz de yapabilirsiniz...
 
Sorudan soru çokmış, Murat Bey noktayı koymuş...
 
Geri
Üst