Eliminar un registro de excel al modificar el mismo registro en otro libro de excel

Tengo un 2 archivos de excel con los mismos datos en cada una, cada registro tiene varias columnas, entre ellas hay una columna "estado", quisiera que en el primer libro cuando el estado cambie a "completo" ese mismo registro se elimine automáticamente en el segundo libro.

Quisiera por favor me ayuden ya que tengo mas de 5000 registros en ambos libros de excel.

1 Respuesta

Respuesta
1

H o l a:

Para hacer la macro necesito varios datos:

  1. En el primer libro, ¿cómo se llama la hoja que tiene los datos?
  2. ¿En qué columna está el título "estado"
  3. Cómo se llama el segundo libro?
  4. ¿Cómo se llama la hoja del segundo libro?
  5. Cómo se identifica el mismo registro, es decir, ¿en alguna columna de ambos libros tienen un identificador en común?, es decir, en el libro 1 cambias el registro 6 al estado "completo"; en el libro 2, ¿cómo identificas cuál es el registro que corresponde al libro 1?
  6. Quieres que se elimine la fila, es decir, que se recorran las filas de abajo hacia arriba, o solamente, ¿quieres limpiar las celdas?

E spero tus comentarios en ese orden.

Notas:

a) La macro deberá ir en el libro1

b) Los 2 libros deberán estar abiertos

sal u dos

1. En el primer libro la hoja se llama: WA CONSOLIDADO 2015-5.

2. El campo estado está en la columna W.

3. El segundo libro se llama: BASE DE BLOQUEO WA 2016-3.

4. Las hojas del segundo libro se llaman: 1 CICLO, 2 CICLO, 3 CICLO.

5. En ambos libros se puede identificar el registro mediante el campo "CÓDIGO" este es el campo que tienen en común.

6. En el segundo libro que se elimine toda la fila que corresponda a ese registro que tenga el mismo código del primer libro.

Gracias

H o l a:

En cuál columna está el "CÓDIGO".

¿Y por qué pusiste 3 hojas? ¿Quieres qué la macro busque en las 3 hojas el código y si lo encuentra que elimine el registro?

Para ambos libros el campo código esta en la columna A, puse 3 hojas porque el segundo libro tiene 3 hojas, para ambos casos el campo código siempre está en la columna A

H o l a:

Te anexo la macro para que la pongas en los eventos del libro 1, en la hoja "WA CONSOLIDADO 2015-5".

El libro 2 deberá estar abierto y su nombre es:

"BASE DE BLOQUEO WA 2016-3.xlsx"



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
            If UCase(c.Value) = "COMPLETO" Then
                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
            End If
        Next
        Application.ScreenUpdating = False
        If existe Then
            l2.Save
            MsgBox "Registros eliminados: " & n
        End If
    End If
End Sub

Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. Del lado derecho copia la macro

Listo! Cada que cambies el estado en la columna "W" a "completo", en automático se eliminará el código en el libro 2.


Muchas gracias, me sirvió de mucho, 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

Es decir, necesito la macro con 2 condiciones, cuando el estado se COMPLETO que haga la acción de eliminar en el otro libro (según la macro que me ha enviado) y cuando el estado sea INCOMPLETO que haga la acción de copiar. Es decir necesito que se agregue ese requerimiento a la macro que me ha enviado.  Gracias 

H o l a:

Con gusto te ayudo con cada petición, crea una nueva pregunta en el tema de excel, en el desarrollo de la pregunta escribe "para Dante Amor".

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas