Todo o código funciona, exceto o Private Sub Worksheet_Change_D (ByVal target As Range). A coluna I8: I200 possui uma fórmula que mostra a mudança atualizada de outra planilha. Se I8: I200 aparecer como concluído, a coluna F deve ser atualizada com esses critérios. Ele funciona manualmente se eu clicar na célula I8 e F8 vai mudar, mas deve fazer isso automaticamente. Eu tenho outra alteração de planilha do VBA que afeta a coluna F, mas isso é uma alteração manual para que seja bom. Isso vai ser um problema para este código? Como devo fazer isso? Isso está sob a planilha real não ThisWorkbook.
Private Sub Worksheet_Change_D(ByVal target As Range)
Dim WorkRng As Range
Dim rng As Range
Dim xOffsetColumn As Integer
Set WorkRng = Intersect(Application.ActiveSheet.Range("I8:I200"), target)
xOffsetColumn = -3
If Not WorkRng Is Nothing Then
Application.EnableEvents = False 'disable events
For Each rng In WorkRng
If rng.Value = "" Then
rng.Offset(0, xOffsetColumn).Value = "Not Started"
Else
If rng.Value = "Completed" Then
rng.Offset(0, xOffsetColumn).Value = "Completed"
Else
If rng.Value = "Pending" Then
rng.Offset(0, xOffsetColumn).Value = "Pending Prior Task"
Else
rng.Offset(0, xOffsetColumn).Value = "Not Started"
End If
End If
End If
Next
Application.EnableEvents = True 'enable events
End If
End Sub