Во-первых, попробуйте этот кусок кода, пожалуйста:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lastRow As Long, i As Long
If Not Intersect(Target, Columns("G:L")) Is Nothing Then
If Target.Value <> "" Then
lastRow = Cells(Rows.Count, Target.Column).End(xlUp).Row
For i = 1 To lastRow
If Cells(i, Target.Column).Value = Target.Value And i <> Target.Row Then
MsgBox "row having same value"
Target.Clear: Target.Select
Exit For
End If
Next i
End If
End If
End Sub