Formül içeren hücrelerin içeriği silindiğinde formül de silinir. Bu da özellikle fatura vs. uygulamalarda bayağı bir sıkıntı oluşturur.
Hücrenin formülü vardır , hücrenin değerini sileyim derken formülü de siliveririz.
Bu konuda Worksheet_change özelliğini kullanarak hücrenin formülünü koruma altına alabiliriz.
Örneğin ;
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Intersect(Target, Range("K11")) Is Nothing Then
Target.Formula = "=G11*H11"
ElseIf Not Intersect(Target, Range("k12")) Is Nothing Then
Target.Formula = "=G12*H12"
ElseIf Not Intersect(Target, Range("k13")) Is Nothing Then
Target.Formula = "=G13*H13"
ElseIf Not Intersect(Target, Range("k14")) Is Nothing Then
Target.Formula = "=G14*H14"
ElseIf Not Intersect(Target, Range("k15")) Is Nothing Then
Target.Formula = "=G15*H15"
ElseIf Not Intersect(Target, Range("k16")) Is Nothing Then
Target.Formula = "=G16*H16"
Target.Formula = "=G11*H11"
ElseIf Not Intersect(Target, Range("k12")) Is Nothing Then
Target.Formula = "=G12*H12"
ElseIf Not Intersect(Target, Range("k13")) Is Nothing Then
Target.Formula = "=G13*H13"
ElseIf Not Intersect(Target, Range("k14")) Is Nothing Then
Target.Formula = "=G14*H14"
ElseIf Not Intersect(Target, Range("k15")) Is Nothing Then
Target.Formula = "=G15*H15"
ElseIf Not Intersect(Target, Range("k16")) Is Nothing Then
Target.Formula = "=G16*H16"
ElseIf Not Intersect(Target, Range("k35")) Is Nothing Then
Target.Formula = "=G35*H35"
ElseIf Not Intersect(Target, Range("k36")) Is Nothing Then
Target.Formula = "=G36*H36"
ElseIf Not Intersect(Target, Range("k37")) Is Nothing Then
Target.Formula = "=G37*H37"
ElseIf Not Intersect(Target, Range("k38")) Is Nothing Then
Target.Formula = "=G38*H38"
ElseIf Not Intersect(Target, Range("k39")) Is Nothing Then
Target.Formula = "=G39*H39"
ElseIf Not Intersect(Target, Range("k40")) Is Nothing Then
Target.Formula = "=G40*H40"
Target.Formula = "=G35*H35"
ElseIf Not Intersect(Target, Range("k36")) Is Nothing Then
Target.Formula = "=G36*H36"
ElseIf Not Intersect(Target, Range("k37")) Is Nothing Then
Target.Formula = "=G37*H37"
ElseIf Not Intersect(Target, Range("k38")) Is Nothing Then
Target.Formula = "=G38*H38"
ElseIf Not Intersect(Target, Range("k39")) Is Nothing Then
Target.Formula = "=G39*H39"
ElseIf Not Intersect(Target, Range("k40")) Is Nothing Then
Target.Formula = "=G40*H40"
End If
End Sub
şeklinde olabilir.Yukarıdaki örnekte K11-K40 gibi hücrelerin değeri G,H sutunlarının çarpımı ile edilmiş ve bu formülün değişmesi engellenmiş .
Değişmesini istemediğiniz formüllerin olduğu sayfanın kod kısmına yukarıdaki şekilde ekleyebilirsiniz.
No comments:
Post a Comment