Macro que me elimine una fila especifica

Para lo que quieres podrías ocupar una macro como la siguiente (la cual debes insertar en un módulo en el editor de Visual Basic) :
Sub elimina()
Dim rango As Range
Dim col As Long
Dim fila As Long
Dim filas As Long
Set rango = Selection
col = rango.Column
fila = rango.Row
filas = rango.Rows.Count
For i = filas + fila - 1 To fila Step -1
If Cells(i, col).Value = "a" Or Cells(i, col).Value = "b" Then
Cells(i, col).EntireRow.Delete
End If
Next
End Sub
En este caso la macro elimina todas las celdas cuyo valor es "a" o "b", si quisieras agregar otra palabra debes agregar la sentencia :
Or celda.Value="palabra nueva"
a continuación de la última palabra (en este caso "b").
Por último, si quieres que se eliminen las palabras que no contienen "a" o "b" debes cambiar la sentencia :
If Cells(i, col).Value = "a" Or Cells(i, col).Value = "b" Then
por :
If Cells(i, col).Value <> "a" And Cells(i, col).Value <> "b" Then
Espero que te sea de utilidad, si aún tienes dudas continúa la pregunta, saludos y suerte!.
(Si quieres conocer más acerca de las macros para excel, visita mi sitio web www.excelworker.virtuabyte.cl )

1 respuesta

Respuesta
1
Lo que te recomiendo hacer es crear una columna auxiliar para extraer la palabra objetivo (en este caso "private"). Por ejemplo, puedes escribir en la celda B1 la palabra "private" y en la celda A1 la fórmula:
=LARGO(B1)
Luego, suponiendo que tu listado está en la columna B y que empieza en la fila 3, debes escribir la siguiente fórmula a partir de la celda A3 hasta la fila que corresponda al último registro de la lista de la columna B:
=SI(ESERROR(EXTRAE(B3;ENCONTRAR($B$1;B3);$A$1));"-";EXTRAE(B3;ENCONTRAR($B$1;B3);$A$1))
Esta fórmula extrerá la palabra que se encuentra en la celda B1 (en este caso "private"), si la palabra buscada no está en la frase, se pondrá el valor "-".
Una vez hecho esto puedes utilizar la macro que te expliqué anteriormente, reemplazando "a" por "private".
Espero que te sea de utilidad, si aún tienes dudas continúa la pregunta.
Muchas gracias, solo una cosa más, ¿cómo puedo añadir a la ultima fórmula para que ademas de la palabra "private" me busque otra más?
Es decir, quiero hacer una macro que me elimine una fila si por ejemplo en esa fila me pone spirit entre otras muchas cosas. Y también otra opción por ejemplo para que me elimine todas las filas que no contengan una palabra que yo quiera.
¿Cómo hago eso?
Gracias
Gracias por tu respuesta pero a ver si me puedes aclara una cosa:
Exactamente cuando el valor es "a" o "b", pero lo que necesito es lo siguiente, te pongo un ejemplo.
Tengo muchas filas en las que aparece la el valor "private", pero no solo aparece ese valor en la misma celda sino que puede aparecer de esta manera: "private booking lomas 3". En este caso lo que me gustaría es que siempre que aparece la palabra "private" en la celda (aunque no sea la única palabra, nunca esta sola en la celda) me elimine la toda la fila.
¿Puedo hacer eso?
Y también lo opuesto, es decir que siempre que aparezca la palabra "private" elimine todas las filas que no contengan entre sus celdas esta palabra.
Para eso tendrías que agregar otra celda con la palabra buscada. Por ejemplo, si quieres buscar las palabras "private" y "excel", puedes escribir en la celda B1 la palabra "private" y en la celda B2 la palabra "excel", además en la celda A1 incluyes la fórmula =LARGO(B1) y en la celda A2 la fórmula =LARGO(B2) .
Luego, suponiendo que el listado comienza en la fila 4 y que se encuentra en la columna B, debes insertar la siguiente fórmula en la celda A4 :
=SI(ESERROR(EXTRAE(B4;ENCONTRAR($B$1;B4);$A$1));SI(ESERROR(EXTRAE(B4;ENCONTRAR($B$2;B4);$A$2));"-";EXTRAE(B4;ENCONTRAR($B$2;B4);$A$2));EXTRAE(B4;ENCONTRAR($B$1;B4);$A$1))
Luego puedes copiar la fórmula hasta la fila que necesites.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas