Eliminar datos negativos y positivos

En un rango en excel tengo los siguientes datos

25

30

-25

67

67

Como se puede hacer para eliminar los valores 25 positivos y negativos duplicados. Los 67 no se deben eliminar. Este es un ejemplo solo de 5 valores esta operación es para eliminar varios.

Respuesta
1

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.

Hice lo que usted me indica en el siguiente libro en la columna A pero no hace la nada la macro.

http://www.4shared.com/file/WH2cC1jc/prueba1.html

gracias

Envía el archivo a [email protected]

Muchas Gracias Experto,

Aquí la solución

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 ContadorII < 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.
Contador = Contador - 1
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.
Else
Comprobar = False ' Establece el valor a False.
Exit Do ' Sale del bucle interno.
End If
Loop
Loop Until Comprobar = False ' Sale inmediatamente del bucle externo.
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas