Dependiendo de la cantidad de valores que tenga tu lista esta macro se demorará, mas, o menos tiempo, para mi ejemplo tu lista esta en la columna A, si esta en otra columna debes modificar la macro.
Sub elimina()
Dim Comprobar, Contador
Comprobar = True: Contador = 0 ' Inicializa variables.
Do ' Bucle externo.
Do While Contador < 65000 ' Bucle interno.
Contador = Contador + 1 ' Incrementa el contador.
If Range("A" & Contador).Value <> "" Then ' Si la condición es verdadera.
Dim ComprobarII, ContadorII
ComprobarII = True: ContadorII = Contador ' Inicializa variables.
Do ' Bucle externo.
Do While Contador < 65000 ' Bucle interno.
ContadorII = ContadorII + 1 ' Incrementa el contador.
If Range("A" & ContadorII).Value <> "" Then ' Si la condición es verdadera.
If Range("A" & ContadorII).Value = -Range("A" & Contador).Value Then
Rows(Contador).Select
Selection.Delete Shift:=xlUp
Rows(ContadorII - 1).Select
Selection.Delete Shift:=xlUp
ComprobarII = False ' Establece el valor a False.
End If
Else
ComprobarII = False ' Establece el valor a False.
Exit Do ' Sale del bucle interno.
End If
Loop
Loop Until ComprobarII = False ' Sale inmediatamente del bucle externo.
que tal , tengo una duda por que al ejecutar la macro,solo lo hace con el primer dato que encuentre?, la tengo que ejecutar tantas veces sea necesario para que me elimine los datos positivos y negativos. - Aura grimaldi