WoksheetChange con listas dependientes no me funciona

He creado la siguiente función VBA
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("Factory_company")) Is Nothing Then

Application.ScreenUpdating = False
Static anteriorvalorFactory_company As Variant
If Range("Factory_company").Value <> anteriorvalorFactory_company Then
'INICIO ventana de confirmación ejecución MACRO
Dim Resp4 As Byte
Resp4 = MsgBox("Si cambias de factoría, se borrarán las categorías de personal informada", _
vbQuestion + vbYesNo, "EXCELeINFO")
If Resp4 = vbYes Then
MsgBox "se borrán"
anteriorvalorFactory_company = Range("Factory_company").Value
Application.Goto Reference:="Personal_Category"
Selection.ClearContents
Else
MsgBox "no se han borrado", vbExclamation, "EXCELeINFO"
End If
End If
Application.ScreenUpdating = True
End If
End Sub

Mi principal problema es que a pesar de decir NO al Msg BOX, la función deja cambiar el valor de la celda : Factory_company

Por otra parte

Si la celda Factory_company (que es una celda con lista) esta vacía y se informa pro primera vez sale igualmente el MsgBox. Yo quisiera solo sacar el msgBox si la celda ya tiene un valor, no si esta vacía

Añade tu respuesta

Haz clic para o