Filtrar tabla

Hola, muchas gracias de antemano por la ayuda.
Mi problema es el siguiente. Tengo una tabla de excel con dos columnas, la columna A contiene un texto por registro, que mediante una macro, filtro a la columna B para que solo me aparezcan los dígitos numéricos. Quedaría algo así:
                 A B
1 dkqj12345678 12345678
2 cmdjeio1 2 34 5 dsqe 12345
3 ewdqnnywyw 0
4 descr1 2 3 frw 123
5 crwevear123 456 123456
En este caso me gustaría eliminar las filas 3 y 4.
Ahora me gustaría hacer otra macro que me elimine todas las filas que contengan menos de 4 números en la columna B, ya que algunos de los textos de la columna A no tienen ningún numero y en la columna B me aparece solo "0", y quería eliminarlas.
Lo he intentado con mi bajo nivel de programación de macros y no sale nunca lo que quiero. No se si lo más correcto es comprobar si los registros son inferiones a 10000 o con un contador para leer si hay menos de 4 dígitos. La verdad es que no se hacerlo...
Muchas gracias!

1 Respuesta

Respuesta
1
Creo que te puedo echar una mano. Veo por la fila 3 de tu ejemplo que en la columna B siempre vas a tener un valor numérico, así que yo lo haría preguntando por el valor <10000, que está más claro, pero da igual una que otra.
Si quieres te hago una macro, pero no sé si lo que quieres hacer con esas filas es realmente eliminarlas (según dices en el texto) o filtrarlas (según dices en el titulo).
Te paso más abajo la macro, y tú mismo eliges lo que quieres hacer, si eliminar las filas u ocultarlas. Quita la sentencia que te sobre de las dos que te paso en negrita.
Por otro lado, no sé si el límite es 999 o 9999. Pon el que necesites.
Espero que te sirva.
Saludos
Angel
++++++++++++++++++++++++++++++++++++++++++++++++++++++
Sub QuitaNumerosBajos()
    Quitar = "Eliminar"
    Quitar = "Ocultar"
    Fila = 1
    Do While Range("B" + Trim(Str(Fila))).Value <> ""
        If Range("B" + Trim(Str(Fila))).Value <= 999 Then
            If Quitar = "Eliminar" Then
                Rows(Fila).EntireRow.Delete
                Fila = Fila - 1
            Else
                If Quitar = "Ocultar" Then
                   Rows(Fila).EntireRow.Hidden = True
                End If
            End If
        End If
        Fila = Fila + 1
    Loop
End Sub
Muchísimas gracias ANGEL!
La macro hace exactamente lo que quería. Espero que a partir de esta, pueda ir yo haciendo alguna otra que necesito.
Muchas gracias!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas