Eliminar filas de varias hojas a la vez

Me gustaría eliminar filas de varias hojas, cuyo rango de celdas contengan determinadas palabras y que se insertaran las filas eliminadas en otra hoja nueva llamada "HOJA DEFINITIVA".
Las palabras en cuestión son:
"obras completas" (las dos palabras deben ir juntas, no quiero que elimine una fila cuyas celdas contengan "obras" o "completas" por separado)
"anónima" (desearía evitarse el error de que identificara "anónimamente" como "anónima")
"coleccion" (en la celda hay más palabras tipo "colección de novelas")
El rango de datos de la hoja1 es A1:D1049
El rango de datos de la hoja2 es A1:D456
El rango de datos de la hoja3 es A1:D890
Tengo 4 columnas por hoja y sus encabezados son "titulo" ; "varios" ; "autor" ; "editorial"
En estas hojas debo eliminar las filas que contienen las palabras en cuestión juntas e insertar las filas eliminadas en una hoja llamada "HOJA DEFINITIVA"

1 respuesta

Respuesta
1
Como estas amigo, disculpa la tardanza, no había tenido tiempo de sentarme con tu pregunta
Desarrolle esta macro que realiza lo que pides, en la hoja1, lo mismo puedes hacer con la hoja2 cambiando hoja1 por hoja2
Espero te ayude
Sub busqueda_exacta()
    On Error Resume Next
    For i = 1 To 500
    Sheets("hoja1").Select
Cells.Find(What:="anónima", After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
If Err.Number = 91 Then GoTo linea1
ActiveCell.EntireRow.Select
Selection.Cut
Sheets("HOJA DEFINITIVA").Select
Range("a1").Select
While (ActiveCell.Value <> "")
ActiveCell.Offset(1, 0).Select
Wend
ActiveSheet.Paste
Next
linea1:
Err.Clear
'On Error GoTo linea2
    MsgBox Err.Number
    For i = 1 To 500
    Sheets("hoja1").Select
Cells.Find(What:="coleccion", After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
    If Err.Number = 91 Then GoTo linea2
ActiveCell.EntireRow.Select
Selection.Cut
Sheets("HOJA DEFINITIVA").Select
Range("a1").Select
While (ActiveCell.Value <> "")
ActiveCell.Offset(1, 0).Select
Wend
ActiveSheet.Paste
Next
linea2:
Err.Clear
    For i = 1 To 500
    Sheets("hoja1").Select
Cells.Find(What:="obras completas", After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
If Err.Number = 91 Then GoTo linea3
ActiveCell.EntireRow.Select
Selection.Cut
Sheets("HOJA DEFINITIVA").Select
Range("a1").Select
While (ActiveCell.Value <> "")
ActiveCell.Offset(1, 0).Select
Wend
ActiveSheet. Paste
Next
linea3:
End Sub
No olvides finalizar la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas