Private Sub Worksheet_Change(ByVal Target As Range) Dim rw As Range Dim lastRow As Long For Each rw In Target.Rows If Cells.Item(1, Target.Column).Value = "PROGRAM" And UCase(rw.Value) = "ON" Then lastRow = Cells(Rows.Count, Target.Column).End(xlUp).Row For i = 2 To lastRow If UCase(Cells(i, Target.Column).Value) = "ON" And i <> Target.Row Then Cells(i, Target.Column).Value = "OFF" End If Next End If Next End Sub