-
- Destek
-
-
Özel Arama
![]() |
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [a1:b1]) Is Nothing Or Selection.Count > 1 Then Exit Sub
sayi = Target.Offset(0, 5)
If Target <> "" And IsNumeric(Target) Then
Target.Offset(0, 2).Value = Target.Value + Target.Offset(0, 2).Value
Else
Target.Offset(0, 2).Value = Target.Offset(0, 2).Value - sayi
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, [a1:b1]) Is Nothing Or Selection.Count > 1 Then Exit Sub
Target.Offset(0, 5) = Target.Value
End Sub
A1 e D1, B2 e G3 ,C4 E H6
okutkan yazdı:Birde verdiğiniz örnekte aynı sütun bulunmuyor, çok dağınık bir şekilde hücre isimleri yazmışsınız. Neye göre hangi hücreden eksilecek hangi hücreye yazılacak bir düzen olması lazım. Örnek dosya da yükleseniz iyi olur.
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1, B2, C3")) Is Nothing Or Selection.Count > 1 Then Exit Sub
ad = Target.Address(0, 0)
If ad = "A1" Then
If Target <> "" Then
[D1].Value = [D1].Value + 13
Else
[D1].Value = [D1].Value - 13
End If
ElseIf ad = "B2" Then
If Target <> "" Then
[D2].Value = [D2].Value + 15
Else
[D2].Value = [D1].Value - 15
End If
ElseIf ad = "C3" Then
If Target <> "" Then
[D3].Value = [D3].Value + 16
Else
[D3].Value = [D3].Value - 16
End If
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1, B2, C3")) Is Nothing Or Selection.Count > 1 Then Exit Sub
ad = Target.Address(0, 0)
A1 = 13
B2 = 15
C3 = 16
If ad = "A1" Then
If Target <> "" Then
[D1].Value = [D1].Value + A1
Else
[D1].Value = [D1].Value - A1
End If
ElseIf ad = "B2" Then
If Target <> "" Then
[D2].Value = [D2].Value + B2
Else
[D2].Value = [D1].Value - B2
End If
ElseIf ad = "C3" Then
If Target <> "" Then
[D3].Value = [D3].Value + C3
Else
[D3].Value = [D3].Value - C3
End If
End If
End Sub
okutkan yazdı:Aşağıdaki şekilde kullanırsanız sayıları değiştirmek daha basit olacaktır.
- Kod: Tümünü seç
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1, B2, C3")) Is Nothing Or Selection.Count > 1 Then Exit Sub
ad = Target.Address(0, 0)
A1 = 13
B2 = 15
C3 = 16
If ad = "A1" Then
If Target <> "" Then
[D1].Value = [D1].Value + A1
Else
[D1].Value = [D1].Value - A1
End If
ElseIf ad = "B2" Then
If Target <> "" Then
[D2].Value = [D2].Value + B2
Else
[D2].Value = [D1].Value - B2
End If
ElseIf ad = "C3" Then
If Target <> "" Then
[D3].Value = [D3].Value + C3
Else
[D3].Value = [D3].Value - C3
End If
End If
End Sub
okutkan yazdı:A1 hücresinde 10 yazıyor diyelim.
A1 hücresine 11 yazdığımızda, 11 i yazmadan önce hücrenin son halini(dolu mu boş mu) değerlendirme imkanı var mı bilmiyorum.
Bunun için önceki değeri hafızada tutma bağlamında yardımcı bir sütun kullanılabilir. Son işlem öncesi değeri yardımcı sütunda tutulur, son işlem ile önceki işlem eşit mi kontrol edilir, eğer eşitse herhangi bir çıkarma toplama işlemi yapılmaz gibi..
Public A1S As Variant
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1, B2, C3")) Is Nothing Or Selection.Count > 1 Then Exit Sub
ad = Target.Address(0, 0)
A1 = 13
B2 = 15
C3 = 16
If A1S = "" Then
If ad = "A1" Then
If Target <> "" Then
[D1].Value = [D1].Value + A1
End If
ElseIf ad = "B2" Then
If Target <> "" Then
[D2].Value = [D2].Value + B2
End If
ElseIf ad = "C3" Then
If Target <> "" Then
[D3].Value = [D3].Value + C3
End If
End If
ElseIf A1S <> "" Then
If ad = "A1" Then
If Target = "" Then
[D1].Value = [D1].Value - A1
End If
ElseIf ad = "B2" Then
If Target = "" Then
[D2].Value = [D2].Value - B2
End If
ElseIf ad = "C3" Then
If Target = "" Then
[D3].Value = [D3].Value - C3
End If
End If
End If
End Sub
Public Sub Worksheet_SelectionChange(ByVal Target As Range)
A1S = Target.Text
End Sub
okutkan yazdı:Yardımcı sütuna gerek kalmadan aşağıdaki kodu kullanıp deneyin.
- Kod: Tümünü seç
Public A1S As Variant
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1, B2, C3")) Is Nothing Or Selection.Count > 1 Then Exit Sub
ad = Target.Address(0, 0)
A1 = 13
B2 = 15
C3 = 16
If A1S = "" Then
If ad = "A1" Then
If Target <> "" Then
[D1].Value = [D1].Value + A1
End If
ElseIf ad = "B2" Then
If Target <> "" Then
[D2].Value = [D2].Value + B2
End If
ElseIf ad = "C3" Then
If Target <> "" Then
[D3].Value = [D3].Value + C3
End If
End If
ElseIf A1S <> "" Then
If ad = "A1" Then
If Target = "" Then
[D1].Value = [D1].Value - A1
End If
ElseIf ad = "B2" Then
If Target = "" Then
[D2].Value = [D2].Value - B2
End If
ElseIf ad = "C3" Then
If Target = "" Then
[D3].Value = [D3].Value - C3
End If
End If
End If
End Sub
Public Sub Worksheet_SelectionChange(ByVal Target As Range)
A1S = Target.Text
End Sub
Public A1S As Variant
Public Sub Worksheet_SelectionChange(ByVal Target As Range)
A1S = Target.Text
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1, B2, C3")) Is Nothing Or Selection.Count > 1 Then Exit Sub
ad = Target.Address(0, 0)
A1 = 13
B2 = 15
C3 = 16
Set aaa = Target
If A1S = "" Then
If ad = "A1" Then
If Target <> "" Then
[D1].Value = [D1].Value + A1
End If
ElseIf ad = "B2" Then
If Target <> "" Then
[D2].Value = [D2].Value + B2
End If
ElseIf ad = "C3" Then
If Target <> "" Then
[D3].Value = [D3].Value + C3
End If
End If
'And Not Target = Empty
ElseIf A1S <> "" Then
If ad = "A1" Then
If Target = "" Then
[D1].Value = [D1].Value - A1
End If
ElseIf ad = "B2" Then
If Target = "" Then
[D2].Value = [D2].Value - B2
End If
ElseIf ad = "C3" Then
If Target = "" Then
[D3].Value = [D3].Value - C3
End If
End If
Target.Offset(0, 1).Select
aaa.Select
End If
End Sub
okutkan yazdı:Aşağıdaki kodu kullanın.
- Kod: Tümünü seç
Public A1S As Variant
Public Sub Worksheet_SelectionChange(ByVal Target As Range)
A1S = Target.Text
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1, B2, C3")) Is Nothing Or Selection.Count > 1 Then Exit Sub
ad = Target.Address(0, 0)
A1 = 13
B2 = 15
C3 = 16
Set aaa = Target
If A1S = "" Then
If ad = "A1" Then
If Target <> "" Then
[D1].Value = [D1].Value + A1
End If
ElseIf ad = "B2" Then
If Target <> "" Then
[D2].Value = [D2].Value + B2
End If
ElseIf ad = "C3" Then
If Target <> "" Then
[D3].Value = [D3].Value + C3
End If
End If
'And Not Target = Empty
ElseIf A1S <> "" Then
If ad = "A1" Then
If Target = "" Then
[D1].Value = [D1].Value - A1
End If
ElseIf ad = "B2" Then
If Target = "" Then
[D2].Value = [D2].Value - B2
End If
ElseIf ad = "C3" Then
If Target = "" Then
[D3].Value = [D3].Value - C3
End If
End If
Target.Offset(0, 1).Select
aaa.Select
End If
End Sub
Bu forumu görüntüleyenler: AhrefsBot, Google Adsense [Bot] ve 3 misafir