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:
sin imagen de perfil
Pos: 129
Val: 3
Ha disminuido su posición en 9 puestos en Visual Basic para Aplicaciones (en relación al último mes)

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
Pos: 1
Val: 641
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)

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

Publicado por Antoni Masana (212 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
sin imagen de perfil
Pos: 129
Val: 3
Ha disminuido su posición en 9 puestos en Visual Basic para Aplicaciones (en relación al último mes)

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