Eliminar determinada Fila en las hojas de un libro

Necesito ayuda, tengo un libro con varias hojas y necesito elimar completamente las filas en las que aparece la palabra Correcto, esto para las diferentes hojas del libro. Como dato adicional cada hoja tiene cantidades diferentes de datos.
Les agradezco la ayuda al respecto

1 Respuesta

Respuesta
1
Entrá al Editor, insertá un módulo y copia´esta macro. Lo que hace es buscar la palabra 'Correcto' entre las col A de cada hoja.
Como adicional, le agregué que no evalúe una hoja llamada Portada. Ajustá aquí tus nombres.
Sub eliminando()
'x Elsamatilde
'quita la hoja donde no quieras que se controle el texto
For Each sh In Sheets
If sh.Name <> "Portada" Then
    'obtengo el fin de rango
    ultima = sh.Range("A65536").End(xlUp).Row
    sh.Select
    ActiveSheet.Range("A2").Select
    'recorro las filas buscando el texto
    While ActiveCell.Row <= ultima
    If ActiveCell.Value = "Correcto" Then
        ActiveCell.EntireRow.Delete
        ultima = ultima - 1
    Else
        ActiveCell.Offset(1, 0).Select
    End If
    Wend
End If
'paso a la otra hoja
Next sh
End Sub
Si todo quedó resuelto no olvides finalizar la consulta
Muchas gracias por tu tiempo... Me esta presentando problemas a la hora de la ejecución. Las hojas ya tienen un determinado nombre, necesito que busque la palabra "Correcto" en cada una de esas hojas que se encuentra en la columna DE, y de esa forma elimine toda la fila. Esto lo necesito que lo evalúe en todas las hojas del libro.
Espero haber aclarado mejor la situación
Entonces solo ajustá lo que te marco con negrita. Como no mencionaste en qué col se encontraba el texto a buscar asumí que sería la col A, ahora te la ajusto para D:
Sub eliminando() 
'x Elsamatilde 
'quita la hoja donde no quieras que se controle el texto 
For Each sh In Sheets 
If sh.Name <> "Portada" Then    'ver (*)
    'obtengo el fin de rango 
    ultima = sh.Range("A65536").End(xlUp).Row 
    sh.Select 
    ActiveSheet.Range("D2").Select       'ajustá el nro de fila, asumo que empieza en 2
    'recorro las filas buscando el texto 
    While ActiveCell.Row <= ultima 
    If ActiveCell.Value = "Correcto" Then 
        ActiveCell.EntireRow.Delete 
        ultima = ultima - 1 
    Else 
        ActiveCell.Offset(1, 0).Select 
    End If 
    Wend 
End If 
'paso a la otra hoja 
Next sh 
End Sub
(*) Si no tenés ninguna hoja que haya que pasar por alto (una portada o menú principal donde no se evalúa la col D), podes quitar estas 2 instrucciones: If... y al final End If.
Aunque dejándolas no pasa nada, igual te funcionará para lo que necesitas.
Sdos
Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas