Macro en Excel que busque y cambie valores si existen cambios en una celda

Soy algo nuevo con las macros en Excel. Estoy tratando de realizar un macro que segun cambie una celda, busque el contenido de ésta en una tabla con una base de datos y si lo consigue muestre los datos, y si no que deje las celdas en blanco.

Para ser mas específico, en la Hoja1 tengo una tabla apartir de la fila 10, como base de datos. Que contiene id, apellidos, nombres, lugar y fecha de nacimiento.

En la celda A5, es donde quiero introducir la id, y si la consigue en la tabla muestre los datos asociados a la id (apellidos, nombres,...) pero si no lo consigue los deje en blanco.

De tanto buscar arme esta macro pero la Macro1 siempre se ejecula. Sin importar el valor de la celda A5

Private Sub Worksheet_Change (ByVal Target As Range)

If Target.Address = "$A$5" Then

Dato = Sheets("Hoja1").Range("A5").Value

Set Buscar = Sheets("Hoja1").Range("Tabla1").Value.Find(Dato, LookIn:=xlValues, lookat:=xlWhole)

If Not Buscar Is Nothing Then

Call Macro1

End If

End If

End Sub

Respuesta
1

https://www.youtube.com/watch?v=Jw8fmqTyUDk 

En link te muestro como ejecutar una macro cuando cambia una celda

En este otro como buscar valores

https://youtu.be/yFNlSsYZZF0

1 respuesta más de otro experto

Respuesta

No se que tenga la macro1

Pero puede usar si la columna a es donde están lo id con que pongas

If Not Buscar Is Nothing Then

Range ("b5") = Buscar.offset(0,1)

End If

End If

End Sub

Con estos logras copiar en b5 el apellido

Otra cosa sería para reducir la macro en ves dato = Sheets("Hoja1"). Range("A5").Value

Borrar esa parte y usalo así

Set Buscar = Sheets("Hoja1").Range("Tabla1").Value.Find(target, LookIn:=xlValues, lookat:=xlWhole)

Seguí tus indicaciones y dejé la macro de esta manera

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$A$5" Then
Set Buscar = Sheets("INICIO").Range("Datos").Value.Find(Target, LookIn:=xlValues, lookat:=xlWhole)
If Not Busca Is Nothing Then
Range("B5") = Buscar.Offset(0, 1)
End If
End If
End Sub

Y se produce un error en tiempo de ejecución, y no tengo idea de porque es el error. Gracias por la ayuda.

No has definido el rango de búsqueda y .Value no va

prueba sin el .Value 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas