Como puedo eliminar una fila de excel, de acuerdo a un valor de una celda "donde se digite" que busque ese mismo valor y elimine

Si tengo en la celda "c3" un criterio (# de factura) como hago que busque en la hoja 2 ese # y elimine la fila por completo y si el valor buscado esta en la columna "d". Sabiendo que "c3" es cambiante.

2 Respuestas

Respuesta
1

Prueba con esta macro te muestra la fila antes de borrarla, solo cambia el nombre de la hoja2 por el nombre que estés usando.

Sub eliminar_fila()
Set h2 = Worksheets("hoja2")
Set datos = h2.Range("d:d")
nombre = ActiveSheet.Name
nfactura = Worksheets(nombre).Range("c3")
With datos
    Set busca = .Find(nfactura)
    Sheets("hoja2").Select
    On Error Resume Next
    Range(busca.Address).EntireRow.Select
    If Err > 0 Then
        MsgBox ("Factura " & nfactura & " no encontrada"), vbCritical, "AVISO"
        GoTo siguiente:
    End If
    On Error GoTo 0
    ask = MsgBox("Factura " & nfactura & " encontrada, BORRAR?", vbYesNo, "AVISO")
    If ask = 6 Then
        Selection.Delete Shift:=xlUp
        MsgBox ("Factura " & nfactura & " borrada "), vbInformation, "AVISO"
    End If
siguiente:
    Sheets(nombre).Select
End With
End Sub
Respuesta
1

[Hola 

Te paso la macro 

Sub DeleteRow()
'
'[Por Adriel Ortiz
'
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    '
    dato = h1.[C3]
    Set b = h2.Columns("D").Find(dato, lookat:=xlWhole)
        If Not b Is Nothing Then
            h2.Rows(b.Row).Delete
        Else
        MsgBox "el # de factura no existe"
        End If
End Sub

Valora la respuesta para finalizar saludos!

¡Gracias!

Te agradezco funciona full. Me podrias indicar como hago que muestre un mensaje que diga que ya se ejecutó.

Sub DeleteRow()
'
'[Por Adriel Ortiz
'
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    '
    dato = h1.[C3]
    Set b = h2.Columns("D").Find(dato, lookat:=xlWhole)
        If Not b Is Nothing Then
            h2.Rows(b.Row).Delete
            '
            MsgBox "Factura eliminada", vbInformation
            '
        Else
            MsgBox "el # de factura no existe", vbInformation
        End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas