• DİKKAT

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

hücreye yazılan sayının üzerine otomatik toplama

Katılım
12 Mart 2008
Mesajlar
24
Excel Vers. ve Dili
2007
Sayın Arkadaşlar,

aşagıdaki kodu aynı sayfadaki bir çok hücreye nasıl uyguluyabilirim.
teşekkürler

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Static dAccumulator As Double
With Target
If .Address(False, False) = "A1" Then
If Not IsEmpty(.Value) And IsNumeric(.Value) Then
dAccumulator = dAccumulator + .Value
Else
dAccumulator = 0
End If
Application.EnableEvents = False
.Value = dAccumulator
Application.EnableEvents = True
End If
End With
End Sub
 
Aşağıdaki şekilde A1:B20 aralığındaki her hücrede çalıştırabilirsiniz. Siz, bu aralığı kodlarda kırmızı olarak belirttiğim kısımda değişiklik yaparak revize edebilirsiniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    Static dAccumulator As Double
    
    If Not Intersect(Target, Range("[B][COLOR=red]A1:B20[/COLOR][/B]")) Is Nothing Then
        
        With Target
            
            If Not IsEmpty(.Value) And IsNumeric(.Value) Then
                dAccumulator = dAccumulator + .Value
            Else
                dAccumulator = 0
            End If
            
            Application.EnableEvents = False
           .Value = dAccumulator
            Application.EnableEvents = True
        
        End With
    
    End If
End Sub
 
Çok teşekkür ederim ilginize fakat çalışmıyor kullanmak istediğim yer stok çalışması daha önce girilmiş sayının üzerine toplaması gerekiyor.
 
İlginize çok teşekkür edrim ama çalışmıyor daha önce hücrenin üzerine yazılmış sayının üstüne toplaması gerekiyor
 
Aşağıdaki gibi deneyin.

Kod:
Dim dAccumulator As Double
 
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
 
    If Not Intersect(Target, Range("A1:B20")) Is Nothing Then
 
        With Target
 
            If Not IsEmpty(.Value) And IsNumeric(.Value) Then
                dAccumulator = dAccumulator + .Value
            Else
                dAccumulator = 0
            End If
 
            Application.EnableEvents = False
           .Value = dAccumulator
            Application.EnableEvents = True
 
        End With
 
    End If
End Sub
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
dAccumulator = Target
End Sub
 
Çok harika oldu çok teşekkür ederim. kusuruma bakmazsanız bunun yanına ikinci veya üçüncü bir hücre dizisi nasıl ekleyebilirim
Teşekkür ederim
Saygılarımla,
 
Hücre dizisi eklemek için ilgili satırı aşağıdaki gibi değiştirebilirsiniz. Örneğin burada sadece A1:A10 , C1:C10 ve D1: D10 aralıklarında işlem yapılacaktır.

Kod:
If Not Intersect(Target, Range("A1:A10,C1:C10,D1:D10")) Is Nothing Then
 
Harikasınız, İlginiz ve yardım severliginiz için çok teşekkür ederim. Başarılar dilerim.
Sevgi ve Saygılarımla
 
Rica ederim. Yardımcı olabildiysem ne mutlu bana.
 
Geri
Üst