Macro encontrar palabra, copiar fila/s en segundo libro y eliminar del primero

De archivos que se van ampliando permanentemente necesitaría ayuda para conseguir una macro que:

En ARCHIVO1 (hoy tiene 9000 filas) Hoja1 - Si en columna/s "K" está escrita la palabra ELIMINAR, copiar fila/s desde columna "A" hasta "J".
En ARCHIVO2 (hoy tiene 1500 filas) Pegar datos copiados en la siguiente fila libre desde columna A hasta columna J.
En ARCHIVO1: eliminar fila/s que contiene/n la palabra ELIMINAR, sin dejar filas en blanco.

Si se puede ejecutar con un botón flotante, mejor.

1 respuesta

Respuesta
2

[Ho la y bienvenido a TodoExpertos.

Prueba la siguiente macro.

- Pon la macro en el "libro1".

- El libro2 también deberá estar abierto.

- Los registros serán pegados en el libro2, en la primera hoja.

- La macro asume que los encabezados del libro1, hoja1, están en la fila 1.

Sub MoverFilas()
  Dim wb1 As Workbook, wb2 As Workbook
  Dim sh1 As Worksheet, sh2 As Worksheet
  Dim f As Range
  Dim lr As Long
  '
  Application.ScreenUpdating = False
  Set wb1 = ThisWorkbook
  Set wb2 = Workbooks("Libro2.xlsx")
  Set sh1 = wb1.Sheets("Hoja1")
  Set sh2 = wb2.Sheets(1)
  '
  If sh1.AutoFilterMode Then sh1.AutoFilterMode = False
  Set f = sh1.Range("K:K").Find("ELIMINAR", , xlValues, xlWhole, , , False)
  If Not f Is Nothing Then
    lr = sh1.Range("K" & Rows.Count).End(3).Row
    sh1.Range("K1:K" & lr).AutoFilter 1, "ELIMINAR"
    sh1.Range("A2:J" & lr).Copy sh2.Range("A" & Rows.Count).End(3)(2)
    sh1.Range("A2:J" & lr).EntireRow.Delete
    sh1.ShowAllData
    Application.ScreenUpdating = True
    MsgBox "Registros eliminados"
  Else
    MsgBox "No hay registros a eliminar"
  End If
End Sub

[Al final de mi respuesta hay un botón para valorarla.

Dante, gracias por la bienvenida, respuesta y conocimientos (sigo aprendiendo y me ayudan diariamente en mi trabajo c/archivos grandes al trabajar con VB/Excel/macros).
En cuanto a tu respuesta:
- Olvidé decir que la macro debe abrir el Archivo2 (asumo mi error). Si se puede agregar esa parte mejor. Independientemente de ello sé que debo valorar tu respuesta y por supuesto que lo haré.
- La probaré en casa esta noche, en mi trabajo no tengo tiempo.

Hola Dante, probé la macro y funciona perfecta. Intenté agregar la opción para que abra el Archivo 2 pero no pude.
Si pudieses ayudarme c/eso y alguna opción que se te ocurra respecto a un botón flotante (o algo del estilo) sería genial ya que dada la cantidad de filas en los archivos, si creo un botón para ejecutar la macro éste quedaría "perdido" entre las páginas y la opción más directa que se me ocurre sería ejecutarla desde el menú Desarrollador/Macros.

Para lo del botón "flotante", revisa lo siguiente:

https://support.microsoft.com/es-es/office/asignar-una-macro-a-un-bot%C3%B3n-728c83ec-61d0-40bd-b6ba-927f84eb5d2c 

[No olvides valorar la respuesta. Al final de mi respuesta hay un botón para valorarla.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas