• Sábado 20 de Abril de 2024, 11:33

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - lucasgoy

Páginas: [1]
1
Visual Basic 6.0 e inferiores / Macro para filtrar y borrar.
« en: Viernes 6 de Abril de 2018, 16:55 »
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!!

Páginas: [1]