Makro problemi

Katılım
23 Şubat 2007
Mesajlar
4
Excel Vers. ve Dili
Excel 10
Arkadaşlar benim şöyle bir problemim var
A1 hücresinde bir sayısal değer var ben bu hücreyi tıklayıp üstüne bir sayı girişi yaptığımda eski sayı ile yeni girdiğim sayının toplanarak yine A1 hücresine yazılmasını istiyorum. Aşağıdaki gibi bir vb kod yazdım.Ancak problemleri var.Mesela birden çok bir alanı fare ile seçtiğimde hata veriyor yada DEL tuşu ile içi dolu herhangi bir hücreyi sildiğimde A1 hücresine giriş yapmadığım halde bunu toplayarak A1 hücresine ekliyor. Bu kodu hangi şekilde düzelterek muntazam çalışmasını sağlayabiliriz.


Dim sabit As Double
Dim deger As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)
If deger = True Then Exit Sub
For Each dolgulu In Range("f11")
deger = True
Sayfa1.Range("f11") = sabit + dolgulu
Exit Sub
Next
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
For Each dolgulu In Range("f11")
sabit = Target
Next
deger = False
End Sub
 
Katılım
23 Şubat 2007
Mesajlar
4
Excel Vers. ve Dili
Excel 10
Ya arkadaşlar lütfen yardımcı olun,kimsenin bir fikri yokmu acep
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki kodları deneyin.

Kod:
Dim sabit As Double
 
Private Sub Worksheet_Change(ByVal Target As Range)
If [a1] = 0 Then Exit Sub
Application.EnableEvents = False
[a1] = [a1] + sabit
Application.EnableEvents = True
End Sub
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then sabit = Target
End Sub
 
Katılım
23 Şubat 2007
Mesajlar
4
Excel Vers. ve Dili
Excel 10
Levent Bey, hernangi dolu bir hücreyi seçip delete tuşuna bastığımda bunda da A1 hücresinde gereksiz bir toplama işlemi oluyor.Acaba kullandığım excel sürümü ile mi ilgili yoksa kodda bir eksiklikmi var.Çözemedim gitti
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Sn. leventm beyin önermiş olduğu kodu aşağıdaki şekilde değiştirip denermisiniz.

Kod:
Dim Sabit As Double
 
Private Sub Worksheet_Change(ByVal Target As Range)
    If [A1] = 0 Then Exit Sub
    If Target.Address <> "$A$1" Then Exit Sub
    Application.EnableEvents = False
    [A1] = [A1] + Sabit
    Application.EnableEvents = True
End Sub
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address = "$A$1" Then Sabit = Target
End Sub
 
Katılım
23 Şubat 2007
Mesajlar
4
Excel Vers. ve Dili
Excel 10
çok teşşekür ederim.bu haliyle düzgün çalışıyor.Saygılar ,iyi çalışmalar
 
Üst