Excel. Buscar y relacionar datos

Hola y gracias de antemano.
Estoy montando un excel de facturación.
En una hoja1 introduzco los datos de cada factura.
En una hoja2 tengo un listado de clientes.
Cuando quiero generar una nueva factura, mediante un listado de validación selecciono en la hoja1 el cliente que lo coge de la hoja2.
Ahora pretendo que una vez seleccionado, se copien en otras columnas, los datos propios de este cliente (véase cif, dirección, forma de pago, etc.)
He montado el listado de validación asociado a una Worksheet_Change, y de momento mediante varios como este
ActiveCell.FormulaLocal = "=BUSCARV(CLI_FACT;TCLI;2;VERDADERO)"
Donde:
CLI_FACT es el cliente seleccionado
TCLI es el listado de todos los clientes
Ya tengo los datos que quería, pero, me salen en la hoja1 como fórmula. Mi intención es capturarlos como dato.
¿Cómo lo debería hacer?
Un saludo y nuevamente gracias

1 Respuesta

Respuesta
1
Leyendo tu consulta te invito a que me envíes el excel por correo, si puede ser.
Creo que podré ayudarte con mayor eficacia de esa manera.
Si no pudieras enviarme el excel, se me ocurren dos posibilidades, te las comento por si quieres probarlas:
-.-
Opción 1. Usar Application. Evaluate
    ActiveCell.Value = Application.Evaluate("=VLOOKUP(A2,D2:E4,2,FALSE)")
Lo molesto de esta opción es que tienes que poner la fórmula en Inglés, es decir, en lugar de BUSCARV, deberías poner VLOOKUP.
-.-
Opción 1. Usar Pegado especial valores
    ActiveCell.FormulaLocal = "=BUSCARV(CLI_FACT;TCLI;2;VERDADERO)"
    ActiveCell. Copy 'Copiamos la celda
    ActiveCell. PasteSpecial xlPasteValues, xlNone, False, False 'Pegamos solo el valor
    Application.CutCopyMode = False

Es decir, copiamos la celda y pegamos solo el valor (no la fórmula).
Pero si te soy sincero, esta solución me parece muy poco elegante.
Estamos en contacto :)
Saludos,
Carlos
[email protected]
Vuelvo a escribir aquí la primera opción para que se corresponda con tu ejemplo, que la que yo he escrito antes se corresponde con un ejemplo mio y podría confundirte.
-.-
Opción 1. Usar Application. Evaluate
    ActiveCell.Value = Application.Evaluate("=VLOOKUP(CLI_FACT,TCLI,2,TRUE)")

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas