Búsqueda de valor de una celda en un rango

Basicamente tengo 2 hojas diferentes dónde en una hay un pequeño formulario con una celda donde se pondrá un valor numérico a buscar en la otra hoja con todo un rango de celdas dónde puede estar o no estar ese valor. La idea entonces es que me me diga si ese valor existe en el rango de celdas, exactamente igual. En caso de que sí, pues que diga que ya existe y que me informe de la columna y de la fila. En caso negativo que me diga que ese valor no existe. Una hoja es la "Principal" dónde esta el formulario y la otra "Registros" dónde se buscan los datos.

Por ahora he hecho esto:

Sub BuscarOrden()

Sheets("Registros").Select
Set resultado = Worksheets("Registros").Range(I3, S500).Find(what:=(WorkSheets("Principal").Range("L11").Value, lookat:=xlWhole)
    If resultado Is Nothing Then
        Range(resultado.Address).Select
        MsgBox "No existe"
    Else
        resultado.Interior.ColorIndex = 6
        MsgBox foundRng.Address
    End If
End Sub

Respuesta
1

La sub esta casi bien, tiene algunos errores que te he corregido y ya funciona.

Yo la pondría en la hoja de código de la hoja "Principal" con el evento change. Así cuando cambies el valor de la celda "L11" automáticamente se va a ejecutar.

Quedaría así:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address <> "$L$11" Then Exit Sub ' esto limita el evento change a la celda "L11"

Sheets("Registros").Select

Worksheets("Registros").Range("I3:S500").Cells.Interior.ColorIndex = 0 '****Borra el color de selecciones anteriores
Set resultado = Worksheets("Registros").Range("I3:S500").Find(what:= _
Worksheets("Principal").Range("L11").Value, lookat:=xlWhole) '****OJO! El rango entre comillas !!!
If resultado Is Nothing Then
' ***                                           esta linea se suprime...... Range(resultado.Address).Select
MsgBox "No existe"
Else
resultado.Interior.ColorIndex = 6
MsgBox " El valor buscado se encuentra en la celda " + resultado.Address ' OJO!!! resultado.address
End If
End Sub

Al copiar y pegar se puede producir algún error de sintaxis quizás tengas que revisarlo.

Suerte.

Saludos Esteban,

muchas gracias por tu ayuda. Ahora me dice que el argumento no es opcional y cuando voy a la lista de macros no me aparece como guardado. Lo que estoy haciendo es asignando el macro al botón y cuando voy a la lista de macros no me aparece guardado. Aún así cuando le doy al botón veo que la macro esta bien asignada al botón. Muchas gracias.

Si has creado la sub como

Private Sub Worksheet_Change(ByVal Target As Range), no tienes que asignar ningún boton, se ejecutra cada vez que modifiques la celda "L11".

Pero tienes que pegarlo en la ventana de código de la hoja"Principal", supongo que será Hoja1.

Quítalo de la ventana de Modulo(n) y ponlo donde te digo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas