• Viernes 29 de Marzo de 2024, 06:56

Autor Tema:  Macro para filtrar y borrar.  (Leído 1662 veces)

lucasgoy

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Macro para filtrar y borrar.
« en: Viernes 6 de Abril de 2018, 16:55 »
0
Buenos días, no se absolutamente nada de esto por lo que quería pedir a ver si me dan una mano. Quiero hacer una Macro que elimine todas las filas en las que los datos de una columna sean distintos de los permitidos. Trate de estas dos maneras:

Sub CIIUSPESQUERAS()

Do While ActiveCell.Value <> ""
    If ActiveCell.Value <> "50110" Then
    If ActiveCell.Value <> "50120" Then
    If ActiveCell.Value <> "50200" Then
    If ActiveCell.Value <> "50300" Then
    If ActiveCell.Value <> "50110" Then
    If ActiveCell.Value <> "50130" Then
    If ActiveCell.Value <> "31110" Then
    If ActiveCell.Value <> "31120" Then
    If ActiveCell.Value <> "31130" Then
    If ActiveCell.Value <> "31200" Then
    If ActiveCell.Value <> "31300" Then
    If ActiveCell.Value <> "32000" Then
    If ActiveCell.Value <> "102001" Then
    If ActiveCell.Value <> "102002" Then
    If ActiveCell.Value <> "151201" Then
    If ActiveCell.Value <> "151202" Then
        ActiveCell.EntireRow.Delete
        ActiveCell.Offset(-1, 0).Select
    Else
    End If
    ActiveCell.Offset(1, 0).Select
Loop
End Sub


Y de esta otra:

Sub CIIUSPESQUERAS()

Do While ActiveCell.Value <> ""
    If ActiveCell.Value <> "50110" Then
    ActiveCell.EntireRow.Delete
        ActiveCell.Offset(-1, 0).Select
    If ActiveCell.Value <> "50120" Then
    ActiveCell.EntireRow.Delete
        ActiveCell.Offset(-1, 0).Select
    If ActiveCell.Value <> "50200" Then
    ActiveCell.EntireRow.Delete
        ActiveCell.Offset(-1, 0).Select
    If ActiveCell.Value <> "50300" Then
    ActiveCell.EntireRow.Delete
        ActiveCell.Offset(-1, 0).Select
    If ActiveCell.Value <> "50110" Then
    ActiveCell.EntireRow.Delete
        ActiveCell.Offset(-1, 0).Select
    If ActiveCell.Value <> "50130" Then
    ActiveCell.EntireRow.Delete
        ActiveCell.Offset(-1, 0).Select
    If ActiveCell.Value <> "31110" Then
    ActiveCell.EntireRow.Delete
        ActiveCell.Offset(-1, 0).Select
    If ActiveCell.Value <> "31120" Then
    ActiveCell.EntireRow.Delete
        ActiveCell.Offset(-1, 0).Select
    If ActiveCell.Value <> "31130" Then
    ActiveCell.EntireRow.Delete
        ActiveCell.Offset(-1, 0).Select
    If ActiveCell.Value <> "31200" Then
    ActiveCell.EntireRow.Delete
        ActiveCell.Offset(-1, 0).Select
    If ActiveCell.Value <> "31300" Then
    ActiveCell.EntireRow.Delete
        ActiveCell.Offset(-1, 0).Select
    If ActiveCell.Value <> "32000" Then
    ActiveCell.EntireRow.Delete
        ActiveCell.Offset(-1, 0).Select
    If ActiveCell.Value <> "102001" Then
    ActiveCell.EntireRow.Delete
        ActiveCell.Offset(-1, 0).Select
    If ActiveCell.Value <> "102002" Then
    ActiveCell.EntireRow.Delete
        ActiveCell.Offset(-1, 0).Select
    If ActiveCell.Value <> "151201" Then
    ActiveCell.EntireRow.Delete
        ActiveCell.Offset(-1, 0).Select
    If ActiveCell.Value <> "151202" Then
    ActiveCell.EntireRow.Delete
        ActiveCell.Offset(-1, 0).Select
    Else
    End If
    ActiveCell.Offset(1, 0).Select
Loop
End Sub

También probé con un solo If y varios And, pero no me toma los And, no se por que. En todos los casos me tira Loop sin Do.

Espero sus respuestas, desde ya muchas gracias!!