Fórmula en VBA para una columna completa de datos seleccionado.

De nuevo acá recurro a los expertos buscando ayuda, espero me solucionen esta parte.
Con un botón de comando me ejecute la macro para procesar los márgenes de ganancias existentes en una hoja de Excel. La idea que me dé los resultados que me arrojen en todas las filas de artículos registrados en la base de datos con un solo clic y, en la hoja tiene un encabezado fila 1, por lo que, la operación aritmética debe procesarse a partir de la fila 2 hasta el último dato existente en la columna resultante, por ejemplo:
Columna D (Costo Proveedor)
Fila 2: 2.000,00
Fila 3: 5.000,00
Fila 4: 3.500,00
…N filas.
Columna E (% margen)
Fila 2: 20,00
Fila 3: 30,00
Fila 4: 15,00
…N filas.
Columna F (Ganancias)
Fila 2: 400,00
Fila 3: 1.500,00
Fila 4: 225,00
…N filas.
Qué fórmula debe hacerse en el botón de comando para la columna F resultante:
Columna F = “Columna D * Columna E/100” …hasta el último dato seleccionado en la columna F
Aclaro que el % de ganancias no siempre es igual, para eso tengo un formulario de registro de artículos cuando requiero hacerle algún cambio de manera individual que afectará únicamente en el rango correspondiente, pero deseo automatizar como una alternativa generalizada.

2

2 respuestas

Respuesta
1

[Hola

A pesar del título de tu mensaje no me queda claro ¿necesariamente quieres insertar fórmulas o puede ser solo el resultado? Y otra cosa, cuando dices que la columna "E" ¿cómo afecta directamente eso a lo que estás pidiendo?

Comentas

Abraham Valencia

Gracias por responderme Abraham. Disculpa que en mi pregunta no me expliqué bien, espero que con el siguiente relato queda entendido:
En la hoja 2 de Excel, tengo varias columnas de datos que vienen cargando desde un formulario, y se van llenando a partir de la fila 2, hasta aquí todo bien.
Lo que necesito es con un botón de comando, me seleccione los valores existentes en la columna F para "actualizar las ganancias" insertando a cada celda el producto de la fila D * E, ejemplo:
columna F (Ganancias):
"=d2*f2"
"=d3*f3"
"=d4*f4"
...hasta n filas de datos existentes en la columna F para que ejecute los cambios. Esta acción es para que me actualice los resultados de "un solo plumazo" ya que, previo en el formulario realizo "algunos cambios" de manera individual el costo y el % de ganancias, Columna D y E respectivamente. 
Saludos!

[Hola nuevamente

La verdad es que te entendí mejor pero has colocado hasta tres fórmulas distintas así que te dejo un ejemplo pero es cuestión de que lo adaptes:

Sub InsertarResultados()
Dim UltimaFila As Long, x As Long
Dim Celda As Range
Let UltimaFila = Cells(Rows.Count, 4).End(xlUp).Row
For Each Celda In Range("F2:F" & UltimaFila)
    Celda.Value = Celda.Offset(0, -2).Value * (Celda.Offset(0, -1).Value / 100) 'D2*(E2/100)
Next Celda
End Sub

Comentas

Abraham Valencia

PD Dejas resultados, no fórmulas

¡Eureka! Abraham, cierto que se me pasó "dividir"  "=D2*(E2/100") en el comentario anterior. Simplemente, arrojando resultados es más eficaz que insertar fórmulas y funciona perfecto.
Valoro tu tiempo y conocimientos. Muchas gracias!

Respuesta

Usa esta macro, puedes copiarla a un botón del formulario o bien llamarla desde el botón del formulario

Sub colocar_formula()
Range("f2").Resize(Range("d2").CurrentRegion.Rows.Count, 1).Formula = "=d2*e2"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas