Excel'de Karışık Toplama

Katılım
1 Aralık 2011
Mesajlar
5
Excel Vers. ve Dili
Ofis 2010
Herkese merhaba
Benim sorum şu şekilde:
Diyelimki A1 sutununa yazdıgım deger B1 sutununda otomatik toplanacak yalnız ben A1 sutununa deger girdikce B1 sutunu onu sürekli toplayacak
Örnek: A1 sutun degerlerine önce
10 degerini girdim enter e bastım sonra
15 degerini girdim sonra
5 diye bir deger daha girdim
B1 sutunu önce
10 olacak sonra
25 olcak sonra
30 olacak şekilde istiyorum.Yani Excel önceki degeri hafızasında tutsun istiyorum. Bunu yolunu biliyormusunuz.Daha dogrusu excel de böyle bir sey yapılabiliyor mu? Not:Excel de daha yeniyim bir kusurum olduysa affola.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Herkese merhaba
Yani Excel önceki degeri hafızasında tutsun istiyorum. Bunu yolunu biliyormusunuz.Daha dogrusu excel de böyle bir sey yapılabiliyor mu? Not:Excel de daha yeniyim bir kusurum olduysa affola.
Merhaba,

Çalışma sayfasının kod bölümüne kopyalayın.


Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
 
    If Intersect(Target, [A1]) Is Nothing Then Exit Sub
 
    Range("B1") = Range("B1") + Target
 
End Sub
 
Katılım
1 Aralık 2011
Mesajlar
5
Excel Vers. ve Dili
Ofis 2010
Üstat kodlar işime yaradı çok teşekkür ederim.Ama ben tüm A sutunu ve B sutununda tamamen geçerli olması için ne yapabilirim.1 saattir araştırıyorum bulamadım.Ve son ricam Toplama işlemin aynısının çıkartmasıda lazım " - target " yaptım hata verdi de zamanın olurda bakarsan sevinirim.Allaha emenet ol.
 

numan şamil

Destek Ekibi
Destek Ekibi
Katılım
27 Ocak 2011
Mesajlar
1,231
Excel Vers. ve Dili
Ofis 2013 Türkçe
Merhaba

Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, [A:A]) Is Nothing Then Exit Sub

Range("B1") = Range("B1") + Target

End Sub

Denermisiniz
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Üstat kodlar işime yaradı çok teşekkür ederim.Ama ben tüm A sutunu ve B sutununda tamamen geçerli olması için ne yapabilirim.1 saattir araştırıyorum bulamadım.Ve son ricam Toplama işlemin aynısının çıkartmasıda lazım " - target " yaptım hata verdi de zamanın olurda bakarsan sevinirim.Allaha emenet ol.
Eğer tüm A sütunundaki işlemi B1 hücresine toplatacaksanız Sayın numan şamil'in verdiği kodları kullanın. A sütununda birebir karşılıkları B sütununda toplanacaksa aşağıdaki kodları kullanın.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
 
    If Intersect(Target, [A:A]) Is Nothing Then Exit Sub
 
    With Target
        .Offset(0, 1) = .Offset(0, 1) [COLOR=red][B]+[/B][/COLOR] .Value
    End With
 
End Sub
+ yerine - yaparsanız çıkartma işlemi yapar.

.
 
Katılım
1 Aralık 2011
Mesajlar
5
Excel Vers. ve Dili
Ofis 2010
Hepinize çok teşekkür ederim sayenizde hiç bilgim olmayan Excel de bir proje çıkarttım.Tekrar Çok teşekkür ederim.Allaha emanet olun.
 
Katılım
1 Aralık 2011
Mesajlar
5
Excel Vers. ve Dili
Ofis 2010
Üstatlar yine rahatsız ediyorumda ben toplama ve çıkarma işlemlerini nasıl aynı anda kullanabilirim.
Aşagıdaki kod yanlış biliyorumda, yapmak istedigim bu aslında yardımlarınızı bekliyorum.A ve B sutunu Toplama C ve D Sutunuda çıkarmada kullanılacak aynı sayfada.


Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, [A:A]) Is Nothing Then Exit Sub
If Intersect(Target, [d:d]) Is Nothing Then Exit Sub

With Target
.Offset(0, 1) = .Offset(0, 1) + .Value
.Offset(0, 1) = .Offset(0, 1) - .Value

End With

End Sub
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Üstatlar yine rahatsız ediyorumda ben toplama ve çıkarma işlemlerini nasıl aynı anda kullanabilirim.
Aşagıdaki kod yanlış biliyorumda, yapmak istedigim bu aslında yardımlarınızı bekliyorum.A ve B sutunu Toplama C ve D Sutunuda çıkarmada kullanılacak aynı sayfada.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
 
    If Intersect(Target, [COLOR=red][A:A,C:C][/COLOR]) Is Nothing Then Exit Sub
 
    With Target
[COLOR=blue]     If .Column = 1 Then[/COLOR]
[COLOR=blue]         .Offset(0, 1) = .Offset(0, 1) + .Value[/COLOR]
[COLOR=blue]     Else[/COLOR]
[COLOR=blue]         .Offset(0, 1) = .Offset(0, 1) - .Value[/COLOR]
[COLOR=blue]     End If[/COLOR]
    End With
 
End Sub
Bu şekilde deneyin.

--------------------------------------------------------------------------------------------

[A:A,C:C] ile makronun sadece A ve C sütunlarındaki tetikleme ile çalıştığını belirledik.

If .Column = 1 Then
.Offset(0, 1) = .Offset(0, 1) + .Value
Else
.Offset(0, 1) = .Offset(0, 1) - .Value
End If

Burada ise eğer tetiklenen hücre sütun indeksi 1 ise ( yani A ) ise topla,

değilse (Else) çıkart dedik.

Mantığı bu şekildedir.
 
Katılım
1 Aralık 2011
Mesajlar
5
Excel Vers. ve Dili
Ofis 2010
Çok dan daha çok teşekkür ederim allah razı olsun site 10 numara sayenizde çok güzel bir proje ortaya koydum.Allaha emanet olun.
 
Üst