vtsoldier2010,
Give this a try. The code assumes that multiple cells in Range("Q2:S" & Rows.Count) can change simultaneously. If it's guaranteed that only 1 cell at a time will change, the code can be greatly simplified:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngChg As Range
Dim ChgGrp As Range
Dim rIndex As Long
Set rngChg = Intersect(Target, Range("Q2:S" & Rows.Count))
If Not rngChg Is Nothing Then
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
For Each ChgGrp In rngChg.Areas
For rIndex = ChgGrp.Row To ChgGrp.Row + ChgGrp.Rows.Count - 1
Select Case Cells(rIndex, ChgGrp.Column).Column
Case 17: Cells(rIndex, ChgGrp.Column + 1).Resize(, 3).ClearContents
Case 18: Cells(rIndex, ChgGrp.Column + 1).Resize(, 2).ClearContents
Case 19:
If Trim(Cells(rIndex, ChgGrp.Column).Value) = vbNullString Then
Cells(rIndex, ChgGrp.Column + 1).ClearContents
Else
Select Case Trim(Cells(rIndex, 17).Value & Cells(rIndex, 18).Value & Cells(rIndex, 19).Value)
Case "DocumentAssignment_DocNot Needed": Cells(rIndex, 20).Value = "Level 2"
Case Else: Cells(rIndex, 20).Value = "Level 1"
End Select
End If
End Select
Next rIndex
Next ChgGrp
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
End If
End Sub
Bookmarks