Visual Basic para Aplicaciones - crear una funcion UDF que calcule un porcentaje si se cumple cierta condicion

Life is soft - evento anual de software empresarial
   
Vista:

crear una funcion UDF que calcule un porcentaje si se cumple cierta condicion

Publicado por federico (2 intervenciones) el 18/07/2017 01:58:04
Buenas noches,

tengo que crear una funcion que realice lo siguiente:

• Premio: Si la cantidad de litros vendidos por un distribuidor supera al promedio de los litros vendidos y el importe de las ventas superan al promedio de las ventas totales de los 5 distribuidores, este cobra un premio de 5% del importe de las ventas realizadas.



la planilla es la siguiente:

excel-planilla

intente grabando una macro para despues convertirla en funcion. pero la idea de la funcion es que yo ingrese como variables los rangos donde se van a calcular los promedios y ahi es donde fallo. porque yo declaro la funcion y le paso 2 variables para que se guarden los 2 rangos que elijo en la planilla.
despues quiero calcular el promedio de esos rangos y no se que codigo usar.

muestro el codigo que estoy usando. se que formulaR1C1 no se usa asi. son pruebas que estuve haciendo.
espero que me puedan ayudar.
gracias!!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Function pruebapremio(rangoVentas As Range, rangoLitros As Range)
'
' pruebapremio Macro
Dim promVentas As Variant
Dim promLitros As Variant
'Dim rangoVentas As Range
'Dim rangoLitros As Range
Dim premio As Variant
 
Range("j2").Select
 
    ActiveCell.FormulaR1C1 = "=AVERAGE(range(rangoVentas))"
    promVentas = Range("j2").Value
    Range("j2").ClearContents
   Range("j2").Select
    ActiveCell.FormulaR1C1 = "=AVERAGE(range(rangoLitros))"
     promLitros = Range("j2").Value
     'Range("e2").ClearContents
 
    If (promVentas > Range("d2").Value) And (promLitros > Range("c2").Value) Then
 
    premio.FormulaR1C1 = "=(RC[-1]*5)/100"
    Range("e2").Value = premio
    End If
 
 
End Function
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana

crear una funcion UDF que calcule un porcentaje si se cumple cierta condicion

Publicado por Antoni Masana (192 intervenciones) el 18/07/2017 08:07:06
Con una función en la columna E hay suficiente:

1
=SI(Y(B2>MEDIA.ACOTADA($B$2:$B$6;0);C2>MEDIA.ACOTADA($C$2:$C$6;0));D2*0.05;"")

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

crear una funcion UDF que calcule un porcentaje si se cumple cierta condicion

Publicado por federico (2 intervenciones) el 18/07/2017 14:01:24
Buen dia. Gracias por responder.
Al ser un trabajo para la escuela me piden que sea una funcion programada en vba.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad