H o l a:
Te anexo la macro actualizada
Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
Application.ScreenUpdating = False
Set l1 = ThisWorkbook
Set h1 = Sheets("WA CONSOLIDADO 2015-5")
Set l2 = Workbooks("BASE DE BLOQUEO WA 2016-3.xlsx")
hojas = Array("1 CICLO", "2 CICLO", "3 CICLO")
col = "A"
existe = False
n = 0
'
If Not Intersect(Target, Columns("W")) Is Nothing Then
For Each c In Target
codigo = Cells(c.Row, col)
Select Case UCase(c.Value)
Case "COMPLETO"
For h = LBound(hojas) To UBound(hojas)
Set h2 = l2.Sheets(hojas(h))
Set b = h2.Columns(col).Find(codigo, lookat:=xlWhole)
If Not b Is Nothing Then
h2.Rows(b.Row).Delete
existe = True
n = n + 1
End If
Next
Case "INCOMPLETO"
Select Case Cells(c.Row, "I")
Case 1: Set h2 = l2.Sheets("1 CICLO")
Case 2: Set h2 = l2.Sheets("2 CICLO")
Case 3: Set h2 = l2.Sheets("3 CICLO")
End Select
Set b = h2.Columns(col).Find(codigo, lookat:=xlWhole)
If Not b Is Nothing Then
h1.Rows(c.Row).Copy
h2.Rows(b.Row).PasteSpecial xlValues
Else
u = h2.Range("W" & Rows.Count).End(xlUp).Row + 1
h1.Rows(c.Row).Copy
h2.Rows(u).PasteSpecial xlValues
End If
existe = True
n = n + 1
End Select
Next
Application.CutCopyMode = False
Application.ScreenUpdating = False
If existe Then
l2.Save
MsgBox "Registros actualizados: " & n
End If
End If
End Sub
‘
S a l u d o s . D a n t e A m o r. Recuerda valorar la respuesta. G r a c i a s