Macro para Actualizar precios

Buenas tardes a todos!, necesito la ayuda de los expertos.
El asunto es el siguiente:
Tengo un archivo de Excel, tipo cotizador, donde en la hoja1, tengo un listado de materiales con la siguiente información:
Código - Descripción - Unidad - Unidad embalaje - precio
1234 - articulo 1 - metros - 2.50 - $34.00
.
.
Etc.
Con estos materiales, realizo diferentes productos o modelos, una mesa, una repisa, etc.
En la Hoja2, modelo "repisa", tengo la siguiente información
Código- Descripción - Necesito - Unidad embalaje - Utilizar - precio - Costo
1234  -articulo 1              4.50         2.5                     =(4.50/2.50)        $34.00   =(1.8*34)
.
.
Etc.
Es decir, Utilizar = Necesito / Unidad Embalaje,
y el, Costo = Utilizar * Precio
Ahora bien, sigue lo interesante, la Macro por la cual estoy pidiendo ayuda, es para que al hacer click en un botón asignándole la macro, me actualice la información de los códigos que necesito en la Hoja2 (modelo repisa), y así en las demás hojas. Esta información es que, al buscar el primer código 1234, me copie y pegue, en las columnas correspondientes, la descripción, unidad de embalaje y precio, de ese código, y se pase al siguiente código (renglón de abajo).
Observación: esa información que se pasa a la Hoja2, no esta en columnas seguidas, es decir, como pueden ver en el ejemplo, entre descripción y unidad embalaje, esta la columna "necesito".
Espero haya quedado claro el ejemplo.
Agradezco de antemano el tiempo que le puedan dedicar y por su ayuda.
Arriba los expertos!
Saludos.

1 respuesta

Respuesta
1
Esto es muy fácil pasas a variables los valores de las celdas de la Hoja 1
Te explico, supongo que columna A= Codigo,B=Descripción,C=Unidad, D=Embalaje y E=Precio
Insertamos un módulo en VBA y pones esta macro:
Sub calcular()
Dim valor, valor1, valor2, valor3, valor4 As String
Sheets("Hoja1").Select
Range("A2").Select
valor = ActiveCell.Value 'Codigo
valor1 = ActiveCell.Offset(0, 1).Value 'Descripcion
valor2 = ActiveCell.Offset(0, 2).Value 'Unidad
valor3 = ActiveCell.Offset(0, 3).Value 'U. Embalaje
valor4 = ActiveCell.Offset(0, 4).Value 'Precio
Sheets("Hoja2").Select
Range("A1").Select
Do While ActiveCell.Value <> valor
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Offset(0, 1).Value = valor1 'Descripcion
ActiveCell.Offset(0, 3).Value = valor3  ' U. Embalaje
ActiveCell.Offset(0, 4).FormulaR1C1 = "=RC[-2]/RC[-1]"
ActiveCell.Offset(0, 5).Value = valor4 'Precio
ActiveCell.Offset(0, 6).FormulaR1C1 = "=RC[-1]*RC[-2]"
End Sub
Ahora dibujas un boton en tu hoja y le pones este codigo
Sub CommandButton1_Click
Call calcular
End Sub
Ya lo tienes hecho tan solo es necesario que en la Hoja2 pongas el código que quieras calcular y pulsar el botón.
Si te ha servido puntúa y finaliza la consulta, si necesitas alguna aclaración me lo dices. Gracias
>Un saludo
>Julio
Gracias Julio... metí el código que me pasaste pero al momento de correrlo, inicia el proceso y se queda corriendo sin terminar, solamente baja renglones pero no pega ningún dato... al darle debug, me marca el renglón del código "ActiveCell.Offset(1, 0).Select" y me pone el error "Select Method of Range Class failed"...
Para simplificar la macro, pudiera ser que solamente me pegue la información que necesito, aunque no haga las fórmulas...
Espero haber sido claro, gracias por tu tiempo. Saludos.
Vamos a ver eso te ocurre porque no tienes ningún código puesto en tu hoja 2 primero pones un código y después la ejecutas, lógicamente la macro va bajando filas intentando encontrar el código de la hoja 1 si no hay ninguno bajará hasta la celda A65536 y se parará, y dará error.
Tu situate en tu hoja2 pones varios códigos en la columna A. Ejecutas la macro y posteriormente le pones valores a las celdas de Necesito y te saldrá también el resultado de las operaciones.
>Un saludo
>Julio

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas