جرب الكود بهذا الشكل
قمت بإضافة بسيطة...
ممكن أعرف ما هي رسالة الخطأ التي تظهر لك عندما تقوم بتشغيله على أوفيس 2003 لأني بستخدم 2007؟
Private Sub Worksheet_Calculate()
Dim c As Range
Dim MyRng As Range, V As Shape
Dim G As Integer, R As Integer, d As Integer
'================================================
G = 2 ' ÚãæÏ ÑÞã ÇáÌáæÓ
R = 15 ' ÕÝ ÇáÏÑÌÇÊ
Set MyRng = Range("e16:p44") ' äØÇÞ ÇáÎáÇíÇ ÇáÐí ÊÑíÏ ÇÖÇÝÉ ÇáÏæÇÆÑ ÝíåÇ
'================================================
Application.ScreenUpdating = False
Application.EnableEvents = False
'==============ÍÐÝ ÇáÏæÇÆÑ ÇáÓÇÈÞÉ====================
For Each V In ActiveSheet.Shapes
If V.Top = Rows(16).Top + 1 Or V.Top = Rows(30).Top + 1 Or V.Top = Rows(44).Top + 1 Then V.Delete
Next
'================================================
For Each c In MyRng
If Cells(c.Row, G) = 0 Or Cells(c.Row, G) = "" Then GoTo 1
If IsNumeric(Cells(R, c.Column)) And Not IsEmpty(Cells(R, c.Column)) And (c.Value < Cells(R, c.Column) Or c.Value = "Û") And c.Value <> "" Then
Set V = ActiveSheet.Shapes.AddShape(msoShapeOval, c.Left + 1, c.Top + 1, c.Width - 2, c.Height - 2)
V.Fill.Visible = msoFalse
V.Line.ForeColor.SchemeColor = 10
V.Line.Weight = 2
d = d + 1
End If
1 Next
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub