Macro que elimine valores positivos y negativos de una columna?

tengo una hoja en Excel de 15;000 filas debo eliminar aquellos valores de la columna L negativos y positivos que me den cero es decir -5,+5= 0 pero puede ocurrir que hayan -5,-5,+5 en cuyo caso sólo eliminare -5,+5. ¿Existe una macro u función que automatice el proceso?

1 respuesta

Respuesta
2

Te anexo la macro para eliminar las filas que tiene valor negativo y su correspondiente valor positivo.

Sub eliminar_valores()
'Por Dante Amor
'Macro que elimine valores positivos y negativos de una columna
    Application.ScreenUpdating = False
    u = Range("L" & Rows.Count).End(xlUp).Row
    For i = 2 To u
        valor = Cells(i, "L").Value
        If valor <> "" And valor < 0 Then
            valor = valor * -1
            Set r = Columns("L")
            Set b = r.Find(valor, LookAt:=xlWhole)
            If Not b Is Nothing Then
                celda = b.Address
                Do
                    'detalle
                    If Cells(b.Row, "R").Value = "" Then
                        Cells(i, "R").Value = "x"
                        Cells(b.Row, "R").Value = "x"
                        Exit Do
                    End If
                    Set b = r.FindNext(b)
                Loop While Not b Is Nothing And b.Address <> celda
            End If
        End If
    Next
    '
    For i = u To 2 Step -1
        If Cells(i, "R").Value <> "" Then
            Rows(i).Delete
        End If
    Next
    Application.ScreenUpdating = True
    MsgBox "Fin"
End Sub

Si no quieres que se elimine la fila por completo, entonces quita estas líneas de la macro:

    For i = u To 2 Step -1
        If Cells(i, "R").Value <> "" Then
            Rows(i).Delete
        End If
    Next

Entonces en la columna "R" quedarán marcadas con una "x" las filas que tienen negativo y su correspondiente positivo.


.

.Sal u dos. Dante Amor. Si es lo que necesitas R ecuerda valorar la respuesta. G racias

.

Gracias Dante me dio el siguiente mensaje al ejecutar la macro

:

Podrías leer completamente mi respuesta.

Solamente copia esta macro:

Sub eliminar_valores()
'Por Dante Amor
'Macro que elimine valores positivos y negativos de una columna
    Application.ScreenUpdating = False
    u = Range("L" & Rows.Count).End(xlUp).Row
    For i = 2 To u
        valor = Cells(i, "L").Value
        If valor <> "" And valor < 0 Then
            valor = valor * -1
            Set r = Columns("L")
            Set b = r.Find(valor, LookAt:=xlWhole)
            If Not b Is Nothing Then
                celda = b.Address
                Do
                    'detalle
                    If Cells(b.Row, "R").Value = "" Then
                        Cells(i, "R").Value = "x"
                        Cells(b.Row, "R").Value = "x"
                        Exit Do
                    End If
                    Set b = r.FindNext(b)
                Loop While Not b Is Nothing And b.Address <> celda
            End If
        End If
    Next
    '
    For i = u To 2 Step -1
        If Cells(i, "R").Value <> "" Then
            Rows(i).Delete
        End If
    Next
    Application.ScreenUpdating = True
    MsgBox "Fin"
End Sub

Exceclente Dante Muchas Gracias.- funciono de maravilla

Dante y podría ser que la macro se ejecute con otro criterio? es decir que haga exactamente lo mismo pero por el codigo de la columna B por ejemplo de la fila 1 a la fila 100 son codigo 114567 mientras que de la fila 101-200 son codigo 114568. De ante gracias Dante.-

No entendí muy bien, podrías explicarlo con ejemplos, pero en una pregunta nueva.

Con mucho gusto te ayudo con todas tus peticiones.

Crea una nueva pregunta en Todoexpertos.com dentro del tema de microsoft excel. En el desarrollo de la pregunta escribe: "para Dante Amor". Ahí me describes con detalle lo que necesitas.

Sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas