Macro para Buscar un Registro y Eliminarlos

Antes que nada deseo agradecer la ayuda que me puedan brindar.

Tengo un sistema de inventarios en Excel y es bastante grande pues hasta la fecha tengo mas de tres mil registros ingresados, y los campos que utilizo son código, descripción y presentación en las columnas A, B y C respectivamente, me encantaría que me ayudaran con una macro que por ejemplo al ingresar un código en la celda "A7" y darle click a un botón este verificara primero si el código existe en caso que si exista me ubique en la celda que contenga ese registro por ejemplo la celda "A320", en caso que el código este malo o este no exista que me muestre un msgbox que diga que el código buscado no existe, y me regrese a la celda A7

Asi mismo un código o una macro para eliminar registros que al igual al escribir un código en la celda A7 por ejemplo y dalrle click a otro botón este primero verifique si el código existe, en caso que asi sea muestre un mensaje haciendo una pregunta si se desea eliminar el registro encontrado si la respuesta es si o aceptar que elimine completamente la fila donde sen encuentra el registro por ejemplo la fila 210, si la respuesta es no o cancelar que me devuelva a la celda A7 y en caso que el código no se encuentre en la base de datos o este errado que muestre un msgbox en el que diga que hay un error que el código buscado no existe y me devuelva a la celda A7.

El nombre de la pagina donde esta la base de datos es "INVENTARIO"

Espero haberme explicado bien y espero me puedan ayudar con estas macros.

1 Respuesta

Respuesta
2

Te pongo las 2 macros, asigna cda macro a un botón, lo botones deberán estar en la misma hoja de tu inventario.

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

Saludos.DAM
No olvides finalizar la pregunta.

Hola Amigo

esta excelente tu solución realmente lo que deseaba, ahora solo deseo me hagas una aclaración y me expliques como hacerlo y es la siguiente:

si estas macros que me enviaste también pudieran funcionar con un inputbox, es decir en lugar de escribir el código en una celda lo pueda escribir en un inputbox y que el resultado sea el mismo que me da en este momento.

espero haber expresado bien mi duda

De igual manera te agradezco enormemente tu apoyo

Claro que te ayudo, finaliza esta pregunta y crea una nueva para cada petición.

Saludos. DAM

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas