Macro VBA para eliminar fila según condición

A todos resulta que tengo un problema con un archivo que tiene unas 3.000 líneas. El problema radica en que en distintas columnas y filas aparece la palabra "null" y la idea es eliminar todas las filas que contenga dicha palabra, he intentado con el siguiente código

 Sub Macro()
Range("A2").Select
Do While Not IsEmpty(ActiveCell)
If ActiveCell = "null" Then
Selection.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
End Sub

Pero solo elimina los "null" de la columna A puesto que eso es lo que declara el código, lo he intentado cambiar seleccionando el rango entre todas las columnas que contienen esa palabra, pero cuando ejecuto solo elimina las de la columna A.

Si alguien me puede ayudar os lo agradezco.

1 Respuesta

Respuesta
1

. 16.01.17 #VBA Elimina líneas por condición

Buenas, Esteban

Prueba con esta alternativa que revisa toda la fila antes de eliminar.

Al final te dirá cuántas líneas eliminó:

Sub ElimNull()
Buscar = "null"  
Range("A2").Select
Application.ScreenUpdating = False
Do While Not IsEmpty(ActiveCell)
    On Error Resume Next
    Encontrado = ActiveCell.EntireRow.Find(What:=Buscar, LookAt:=xlWhole).Row
    If Err.Number = 0 And Len(Encontrado) > 0 Then
        Selection.EntireRow.Delete
        cont = cont + 1
    Else
        ActiveCell.Offset(1, 0).Select
    End If
    Err.Clear
On Error GoTo 0
Loop
ElMensaje = IIf(cont = 0, "NO SE ELIMINO LINEA ALGUNA, porque" & Chr(10) & "no se encontró " & Buscar & " en el rango.", "Se eliminaron: " & cont & " linea" & IIf(cont > 1, "s", ""))
TipoMens = IIf(cont = 0, vbCritical, vbInformation)
ElTitulo = IIf(cont = 0, "NO SE HIZO NADA", "TERMINADO!")
Application.ScreenUpdating = True
MsgBox ElMensaje, TipoMens, ElTitulo
End Sub

.

Hola! Muchísimas gracias por responder, pues mira que me aparece un mensaje que dice "se esperaba Function o una Variable"

Excelente solo tuve que reemplazar Buscar por Find y listo! problema resuelto 

.

Ok. Me alegro de que te haya funcionado.

"Buscar" es una variable que aloja el valor "null", por si querías usarla con otra palabra.

Un abrazo

Fer

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas