BuscarV al modificar una celda

Tengo una base de datos, que quiero automatizar por lo tanto tengo un problemas con el codigo de Vlookup.

La idea es que al momento de cambiar una celda donde está el dato, corra la macro y me traiga el dato y la copie en la celda de al lado. Ademas (que no está en el codigo) me gustaria agregarle que cuendo no encuentra el dato, de una opción de agregar el adto a la base de dato.

Adjunto el codigo.

Private Sub Worksheet_Change(ByVal Target As Range)

Dim lookupvalue As Variant, value As Variant, lookupRange As Range
Target = Range("G16").value
Set lookupRange = Range("g7:H10")
lookupvalue = Application.VLookup(Target, lookupRange, 2, False)
If IsError(lookupvalue) Then
Exit Sub
Else
[h16] = lookupvalue
End If
End Sub

Favor comentarme en que parte está el error, y ademas que instruccion debo agregar, para que me diga que no encontró el dato y si lo deseo agregar.

1 respuesta

Respuesta
2

Primero tenes que acotar el Range donde se evalúa el cambio para que no se ejecute al cambiar el contenido en col H:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim lookupvalue As Variant, value As Variant, lookupRange As Range
If Target.address <> "$G$16" then exit sub

'Realiza la busqueda

Set lookupRange = Range("g7:H10")
lookupvalue = Application.VLookup(Target, lookupRange, 2, False)
If IsError(lookupvalue) Then

'Envía mensaje

Msgbox "No se encontró el dato, ingresa lo manualmente"

Range ("H16").setfocus
Else
[h16] = lookupvalue
End If
End Sub

Probala y comentame si requiere de algún otro ajuste

Sdos

Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas