Tengo un libro de Excel con dos hojas denominadas Inventario y Compras.
En la hoja Inventario está el inventario de mi almacén con los siguientes
campos:
Código Línea Denominación UniVenta IM OfiSSCC Entradas Salidas Existencias PrecioUniCoste PrecioVenta ValorExistencias
En la hoja Compras están los cálculos de los artículos que compro; los
campos son:
Fecha ClProv Documento Código Cantidad PrecioCompra Descuento IVA Importe Prorrata CosteNeto NomProveedor NomArtículo
Por medio de un filtro avanzado determino el importe del coste de compra en
la celda Compras!M9999.
Por medio de una macro quiero llevar el importe del coste de compra a la
celda que corresponda de la hoja de Inventario. La columna es siempre la J
(PrecioUniCoste).
Hago la macro que indico a continuación:
Sub PegarCoste()
' PegarCoste Macro
Sheets("Inventario").Select
Range("M1").Select
Application.CutCopyMode = False
Selection.Copy
Application.Goto Reference:="R112C10"
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=Compras!R[9887]C[3]"
Range("J112").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
End Sub
Como paso previo localizo la celda de la hoja Inventario en la que la macro
tiene que escribir el valor de la celda Compras!9999 por medio de la función:
=DIRECCION(BUSCARV(Compras!D3;Inventario!A:B;2;FALSO);10)
En la celda Compras!D3 está el código de producto utilizado.
El resultado del cálculo lo introduzco en el cuadro de nombres para que
sitúe el cursor en la celda correspondiente.
La primera vez que ejecuto la macro funciona bien; la segunda y sucesivas
veces que ejecuto la macro funciona mal porque toma siempre el primer valor
de la celda que introduje en el cuadro de nombres.
¿Cómo tengo que hacer para que tome cada vez que necesite ejecutar la macro
el valor que tenga la celda?
Saludos,
Julián.
Leer las respuestas