¿Configuración del código en la Macro?

Dante me puedes ayudar con una macro en la que me ayudaste hace un tiempo, la configuración es que se ejecute solo con las celdas visibles por ejemplo filtro los datos por código para que la macro se aplique solo a los datos filtrados, por ejemplo en la siguiente imagen cuando filtre las celdas de color azul que se aplique solo a esos datos:

Este es tu codigo: 

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

1 respuesta

Respuesta
1

Va la macro actualizada

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
        If Cells(i, "L").EntireRow.Hidden = False Then
            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
        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

'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 
'.[Avísame cualquier duda

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas