Visual Basic para Aplicaciones - Error en Buscarv en VBA

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 177
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Error en Buscarv en VBA

Publicado por Albert (204 intervenciones) el 12/11/2021 12:15:56
buenos días, estoy intentando que en una hoja cuando pongo el nombre me ponga automático el DNI, pero sin tener los datos en otra Hoja, lo he provado con este código en la celda

=SI.ERROR(BUSCARV(C5;Hoja1!$C$5:$D$2000;2;0);"")
Funciona pero da error circular, entonces he intentado hacer una macro pero en vez de ponerme los datos en la celda lo que hace es borrarlo todo.
Adjunto un excel con la prueba por si alguien puede mirar que hago mal

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("D5:D100")) Is Nothing Then
fin = Application.CountA(Worksheets("PROVA").Range("A:A"))

With Worksheets("PROVA").Range("D5:D" & fin)
.Formula = "=IF(ISERROR(VLOOKUP(RC[-3],PROVA!R2C3:R100C5,4,FALSE)),"""",VLOOKUP(RC[-3],PROVA!R2C3:R100C5,4,FALSE))"
.Formula = .Value
End With
End If
End Sub

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Error en Buscarv en VBA

Publicado por Antoni Masana (498 intervenciones) el 12/11/2021 18:32:40
Empecemos por la fórmula:

Escribes el nombre
¿Donde?
¿En la celda C5?
Y donde lo busca:
¿En la misma celda que lo has escrito? Qué sentido tiene.

1
=SI.ERROR(BUSCARV(C5;Hoja1!$C$5:$D$2000;2;0);"")

Dices que es para buscar el DNI
¿Dondé está el DNI?
Dices: sin tener los datos en otra Hoja
¿Dondé está la tabla de dos columnas con Nombre y DNI?

Y ya ni me miro la macro porque debes de estar cometiendo los mismos errores que con la fórmula.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 177
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Error en Buscarv en VBA

Publicado por Albert (204 intervenciones) el 12/11/2021 18:55:07
he mejorado un poco pero ahora tengo otro error , he puesto el siguiente código que copia lo que escriba en la columna c en la celda K3 y la uso como celda con el nombre que busco


If Not Intersect(Target, Range("c5:c100")) Is Nothing Then
a = ActiveCell.Address
Range(a).Copy
Range("K3").PasteSpecial xlPasteValues
Application.CutCopyMode = False

Exit Sub
He cambiado también lo que tu me dices pero el problema ahora es que el nuevo código no me deja escribir en la columna c, por mas que busco no se como solucionarlo
te adjunto la copia del excel modificado por si lo puedes mirar
Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 177
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Error en Buscarv en VBA

Publicado por Albert (204 intervenciones) el 12/11/2021 19:19:25
Resuelto, con este código
If Target.Column = 4 Then [K3] = Cells(Target.Row, 3)
me copia lo que ponga en la siguiente celda de la colunma C en la celda K que uso como Buscar
gracias de todos modos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Error en Buscarv en VBA

Publicado por Antoni Masana (498 intervenciones) el 12/11/2021 22:56:40
En tu ultimo libro en la celda L3 he puesto esta formula:

1
=SI.ERROR(BUSCARV(K3;C5:D8;2);"")

Y funciona. Si tienes dos pacos solo encuentra el primero.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar