Seleccionar resultado de función buscar numérico en macro

Quiero actualizar mi stock de filtros de aceite, cree una macro que hace referencia al código del filtro, con la función buscar en A2 me entrega el numero correlativo, en la columna f 2 coloco las cantidades compradas del código, quiero que las coloque en el espacio de la columna f correspondiente a ese producto, Aplique la siguiente macro, pero me arroja error.

Favor necesito de su ayuda.

Range(" A2"). Active

ClaveEntrada = ActiveCell.formulaR1C1 + 4

CeldaEntrada ="D" & ClaveEntrada
Range("D2").Select
EntradaProducto = ActiveCell.formulaR1C1
Range(CeldaEntrada).Select
ActiveCell.formulaR1C1 = Val(ActiveCell.formulaR1C1) + Val(EntradaProducto)
Range("D2").Select
ActiveCell.FormulaR1C1 = ""

Respuesta
1

Entiendo que tenés una tabla de códigos en col A y cantidades en col F.

Si ingresas un cód en A2 necesitas que busque en qué fila está para colocarle la cantidad que ingresas en F2, ¿vamos bien hasta ahí?

Falta aclarar si la cantidad se suma a una que ya tenga ese registro o solo se coloca lo ingresado en F2., y también en qué fila comienza la tabla de códigos.

Quedo a la espera de tus aclaraciones..

Asi es el esquema, lo que se encuentra en B es el dato de entrada, el numero de orden es para ubicarme en la fila que se encuentra dicho código y esta dado por la función Buscar(B2;B5:B130;A5:A130) , lo que ingrese en F2, se ingresara en este caso en F25, asi esta estructurada mi planilla esto es fila 1 y 2, desde A5 Hasta H130 se encuentran los datos.

A B C D E F G

N° ORDEN CÓDIGO FABRICANTE UBICACIÓN VALOR ENTRADA SALIDA STOCK
21 C19175 MANN A35 $1

Te dejo tu macro explicada para que puedas observar dónde están tus problemas, y a continuación la macro correcta para lo que necesitas:

Sub prueba()
'explicada x Elsamatilde
'celda del nro de orden
Range("A2").Select
'se suma 4 xq empieza en fila 5
ClaveEntrada = ActiveCell.Value + 4
'??????
CeldaEntrada = "D" & ClaveEntrada
'se guarda el contenido de la celda D2 (ATENCIÓN QUE EN EL EJ NO ES UN VALOR SINO UNA REF)
 Range("D2").Select
 EntradaProducto = ActiveCell.Value
 'se posiciona en la fila de orden, col D y acumula valores
 Range(CeldaEntrada).Select
 ActiveCell.Value = Val(ActiveCell) + Val(EntradaProducto)
 'se limpia la celda D2
 Range("D2").Select
 ActiveCell = ""
End Sub

Notas: las celdas toman de modo predeterminado la propiedad Value, por que es lo mismo colocar ActiveCell = 11111 que colocar ActiveCell.Value = 11111, pero NO es correcto colocar valores con la instrucción ActiveCell.FormulaR1C1.

Tampoco es necesario seleccionar la celda para moverle un valor.

Aquí va la macro ajustada:

Sub Pase()
'x Elsamatilde
'celda del nro de orden o fila del registro
Range("A2").Select
'se suma 4 xq empieza en fila 5
nroFil = ActiveCell.Value + 4
'se guarda el contenido de la celda F2 para acumularla a lo que ya contenga el registro
EntradaProducto = Range("F2").Value
'se posiciona en la fila de orden, col F y acumula valores
Range("F" & nroFil).Select
ActiveCell.Value = Val(ActiveCell) + Val(EntradaProducto)
 'se limpia la celda F2
Range("F2") = ""
End Sub

Sdos y no olvides finalizar si el tema queda resuelto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas