O evento de Alteração de Planilha do Excel não é acionado, a menos que a célula seja alterada manualmente para o Sub Worksheet_Change_D Privado

1

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
    
por NikiC 18.06.2018 / 02:58

0 respostas