Macro para Buscar un Registro y Eliminarlos

El tema ya existe mi pregunta pero yo quiero que los botones de la macro y A7 estén en una hoja y los datos a eliminar estén en otra hoja .

Agradecería mucho su colaboración . Mi amigo Dante Amor me a estado ayudando

Sub buscar()
'Por.DAM
u = Range("A" & Rows.Count).End(xlUp).Row
Set b = Range("A8:A" & u).Find(Range("A7"), lookat:=xlWhole)
If Not b Is Nothing Then
    b.Select
Else
    MsgBox "El código buscado no existe", vbCritical
    Range("A7").Select
End If
End Sub
Sub eliminar()
'Por.DAM
u = Range("A" & Rows.Count).End(xlUp).Row
Set b = Range("A8:A" & u).Find(Range("A7"), lookat:=xlWhole)
If Not b Is Nothing Then
    If MsgBox("Desea eliminar el registro", _
        vbQuestion & vbYesNo, "ELIMINAR") = vbYes Then _
        Rows(b.Row).Delete
End If
Range("A7").Select
End Sub

1 respuesta

Respuesta
1

[Hola 

Que tal así, comentas y valoras 

Sub buscar()
    'Por.DAM
    Set h1 = Sheets("Hoja1") 'nombre de hoja
    '
    u = h1.Range("A" & Rows.Count).End(xlUp).Row
    Set b = h1.Range("A8:A" & u).Find(h1.Range("A7"), lookat:=xlWhole)
    If Not b Is Nothing Then
        b.Select
    Else
        MsgBox "El código buscado no existe", vbCritical
        h1.Range("A7").Select
    End If
End Sub
'
'
Sub eliminar()
    'Por.DAM
    Set h2 = Sheets("Hoja2") 'nombre de hoja2
    '
    u = h2.Range("A" & Rows.Count).End(xlUp).Row
    Set b = h2.Range("A8:A" & u).Find(h2.Range("A7"), lookat:=xlWhole)
    If Not b Is Nothing Then
        If MsgBox("Desea eliminar el registro", _
            vbQuestion & vbYesNo, "ELIMINAR") = vbYes Then _
            h2.Rows(b.Row).Delete
    End If
    h2.Range("A7").Select
End Sub

Estimado Dam

Mira lo que me gustaría es que en la hoja 1 solo este el botón de la macro y la celda A7. Y que todos los datos a buscar y eliminar estén en la hoja 2.

Lo único que deseo es que busque el codio en la otra hoja y una vez que lo encuentre lo borre.

Sub buscar()
    'Por.DAM
    Set h1 = Sheets("Hoja1") 'nombre de hoja
    '
    u = h1.Range("A" & Rows.Count).End(xlUp).Row
    Set b = h1.Range("A8:A" & u).Find(h1.Range("A7"), lookat:=xlWhole)
    If Not b Is Nothing Then
        b.Select
    Else
        MsgBox "El código buscado no existe", vbCritical
        h1.Range("A7").Select
    End If
End Sub
'
'
Sub eliminar()
    'Por.DAM
    Set h2 = Sheets("Hoja2") 'nombre de hoja2
    '
    u = h2.Range("A" & Rows.Count).End(xlUp).Row
    Set b = h2.Range("A8:A" & u).Find(h2.Range("A7"), lookat:=xlWhole)
    If Not b Is Nothing Then
        If MsgBox("Desea eliminar el registro", _
            vbQuestion & vbYesNo, "ELIMINAR") = vbYes Then _
            h2.Rows(b.Row).Delete
    End If
    h2.Range("A7").Select
End Sub


Sub Botón1_Haga_clic_en()
Call buscar
Call eliminar
End Sub

Te paso la macro actualizada

Sub buscar()
    'Por. DAM
    'Act. Adriel Ortiz
    '
    Set h1 = Sheets("Hoja1") 'nombre de hoja1
    Set h2 = Sheets("Hoja2") 'nombre de hoja2
    '
    u = h2.Range("A" & Rows.Count).End(xlUp).Row
    Set b = h2.Range("A8:A" & u).Find(h1.Range("A7"), lookat:=xlWhole)
    If Not b Is Nothing Then
        If MsgBox("Desea eliminar el registro " & b.Row, _
            vbQuestion & vbYesNo, "ELIMINAR") = vbYes Then _
            h2.Rows(b.Row).Delete
    Else
        MsgBox "El código buscado no existe", vbCritical
        h1.Range("A7").Select
    End If
End Sub

Excelente es exacto lo que ocupo.

Ahora que pasa si los datos están en otro LIBRO. ¿Se puede? Como lo harían.

Te paso la macro

Sub buscar()
    'Por. DAM
    'Act. Adriel Ortiz
    '
    Set l1 = ThisWorkbook
        Set h1 = l1.Sheets("Hoja1")
    Set l2 = Workbooks("Libro2.xlsx")          'nombre libro2
        Set h2 = l2.Sheets("Hoja2")            'hoja a buscar en libro2
    '
    u = h2.Range("A" & Rows.Count).End(xlUp).Row
    Set b = h2.Range("A8:A" & u).Find(h1.Range("A7"), lookat:=xlWhole)
    If Not b Is Nothing Then
        If MsgBox("Desea eliminar el registro " & h2.Cells(b.Row, "A") _
            , vbQuestion & vbYesNo, "ELIMINAR") = vbYes Then _
            h2.Rows(b.Row).Delete
    Else
        MsgBox "El código buscado no existe", vbCritical
        h1.Range("A7").Select
    End If
End Sub

Valora la repuesta para finalizar saludos!


Muy buena ahora una ultima petición. ¿Podría ser que el libro 2 permanezca serrado? Quisiera no tenerlo abierto.

Es abrir y cerrar el libro, crea una nueva pregunta y me explicas lo que necesitas saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas