Como copiar una celda de Excel a otro libro modificando un campo estado

Pero quisiera agregar un requerimiento más si no fuera mucha molestia, en mi hoja WA CONSOLIDADO 2015-5 cuando el estado cambie a INCOMPLETO que me copie toda a esa fila al libro BASE DE BLOQUEO WA 2016-3 según la hoja donde corresponda, ya que en ese libro tengo 3 hojas 1 CICLO, 2 CICLO Y 3 CICLO, para hacer esta búsqueda en mi hoja WA CONSOLIDADO 2015-5 tengo una columna llamada CICLO y existen registros que tienen el campo: 1,2 o 3 según corresponda, es decir según el dato que se tiene en esa columna CICLO (que puede ser 1,2 o 3) que lo copie al otro libro en la hoja que corresponda. Muchas gracias por todo, espero me haya dejado entender. La columna CICLO esta en la columna I.

Para: Dante Amor

1 respuesta

Respuesta
1

H o l a:

Reemplaza la macro anterior por la siguiente:

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
            Select Case UCase(c.Value)
                Case "COMPLETO"
                    codigo = Cells(c.Row, col)
                    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
                    u = h2.Range("W" & Rows.Count).End(xlUp).Row + 1
                    h1.Rows(c.Row).Copy
                    h2.Rows(u).PasteSpecial xlValues
                    Application.CutCopyMode = False
                    existe = True
                    n = n + 1
            End Select
        Next
        Application.ScreenUpdating = False
        If existe Then
            l2.Save
            MsgBox "Registros eliminados: " & 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

Muchas gracias, me funcionó a la perfección,  pero cuando cambio el estado a INCOMPLETO más de una vez a un solo registro, este se copia nuevamente en el otro libro y quisiera que solo se copie una vez sin importar la cantidad de veces que yo escriba en el estado INCOMPLETO en ese registro. Muchas gracias nuevamente 

Crea una pregunta nueva para actualizar la macro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas