Crear funcion personalizada

23/05/2005 - 00:16 por Javi | Informe spam
Hola

Estoy intentando hacer una funcion personalizada para un descuento un
poco especial, del tipo 30%+15% o para el normal del 25%

KL ya me dió una idea para pasarlo a un formulario, pero quiero
utilizarlo también en una celda de una hoja y no hay manera de que funcione.

Lo que he escrito es esto:

Function descuentounico(celda)
texto = celda
If InStr(texto, "+") Then
txt1 = Left(texto, InStr(texto, "+") - 2)
'solo toma el número sin %
largo = Len(texto)
txt2 = Mid(texto, InStr(texto, "+") + 1, largo-1)
'solo toma el número sin %
Else
txt1 = texto
txt2 = ""
End If
dcto1 = CCur(txt1)
dcto2 = CCur(txt2)
descuentounico = Round ( dcto1 + dcto2 - dcto1 * dcto2 / 100, 2)

End Function

La función hará referencia a la celda que contenga el descuento, por
ejemplo si está en la celda F8 y en la F7 está el descuento (por ejemplo
el 40%+10%), la Žcelda contendría
=descuentounico(F7)

pero me da el error #VALOR

Como siempre gracias

Javi
 

Leer las respuestas

#1 KL
23/05/2005 - 01:03 | Informe spam
Hola Javi,

Prueba el siguiente codigo.

Saludos,
KL

Function descuentounico(Celda As Range)
Application.Volatile
Dim dcto1 As Double
Dim dcto2 As Double
If InStr(Celda, "+") Then
dcto1 = Format(Left(Celda, InStr(Celda, "+") - _
1), "0.00")
dcto2 = Format(Mid(Celda, InStr(Celda, "+") + _
1, Len(Celda)), "0.00")
Else
dcto1 = Celda
dcto2 = 0
End If
descuentounico = Round(1 - (1 - dcto1) * (1 - _
dcto2), 2)
End Function

Preguntas similares