Function Elige parametros despues elige metodo de calculo

30/05/2007 - 16:40 por cpjcarlos | Informe spam
Hola amigos como siempre cuando se me atora algo y despue de intentarle de
varias formas y no encontrar solucion acudo a ustedes

tengo una funcion que realiza unos calculos de importes

Function Pt(CLAVE, KILOS As Double)
**CLAVE ahi se va un valor que va a definir el metodo de calculo y unos
importes
**KILOS ahi van otros datos numericos

Lo que necesito es que dependiento de la clave que sea determine eliga unos
importes y un metodo de calculo diferente pero no logro que mi funcion eliga
ese diferente tipo de caluculo ¿ como le hago ? ...aqui mi codigo MUCHAS
GRACIAS

Public Function Pt(CLAVE, KILOS As Double)

'*******DEFINE CLAVES********
Dim Res As Double
Select Case CLAVE
Case "CLR"
TXK = 1.05
CM = 17.55
CALC = MAYOR
Case "CPR"
TXK = 1.4
CM = 21.6
CALC = MAYOR
Case "CFR"
TXK = 1.76
CM = 32.4
CALC = MAYOR

Case "OC"
TXK = 0.64
CF = 11.9
CALC = AMBOS
Case "AC"
TXK = 0.56
CF = 9.8
CALC = AMBOS


Case "PE"
PG = 10
CALC = XGUIA
Case "MS"
PG = 24
CALC = XGUIA

Case Else
End Select
'*******DEFINE EL TIPO DE CALCULO******
Select Case CALC
Case MAYOR
If TXK * KILOS > CM Then
Res = TXK * KILOS
Else
Res = CM
End If

Case AMBOS
Res = TXK * KILOS + CF

Case XGUIA
Res = PG
Case Else
End Select

Pt = Res
End Function
 

Leer las respuestas

#1 David
30/05/2007 - 19:04 | Informe spam
De un primer vistazo, podría deberse a que está considerando MAYOR, AMBOS y
XGUIA como variables, y no como texto. Así, lo que obtienes en CALC es un
cero, independientemente del valor de CLAVE.

Prueba encerrarlos entre comillas:

Public Function Pt(CLAVE, KILOS As Double)

'*******DEFINE CLAVES********
Dim Res As Double
Select Case CLAVE
Case "CLR"
TXK = 1.05
CM = 17.55
CALC = "MAYOR"
Case "CPR"
TXK = 1.4
CM = 21.6
CALC = "MAYOR"
Case "CFR"
TXK = 1.76
CM = 32.4
CALC = "MAYOR"
Case "OC"
TXK = 0.64
CF = 11.9
CALC = "AMBOS"
Case "AC"
TXK = 0.56
CF = 9.8
CALC = "AMBOS"
Case "PE"
PG = 10
CALC = "XGUIA"
Case "MS"
PG = 24
CALC = "XGUIA"
Case Else
End Select

'*******DEFINE EL TIPO DE CALCULO******
Select Case CALC
Case "MAYOR"
If TXK * KILOS > CM Then
Res = TXK * KILOS
Else
Res = CM
End If
Case "AMBOS"
Res = TXK * KILOS + CF
Case "XGUIA"
Res = PG
Case Else
End Select

Pt = Res
End Function






"cpjcarlos" escribió:

Hola amigos como siempre cuando se me atora algo y despue de intentarle de
varias formas y no encontrar solucion acudo a ustedes

tengo una funcion que realiza unos calculos de importes

Function Pt(CLAVE, KILOS As Double)
**CLAVE ahi se va un valor que va a definir el metodo de calculo y unos
importes
**KILOS ahi van otros datos numericos

Lo que necesito es que dependiento de la clave que sea determine eliga unos
importes y un metodo de calculo diferente pero no logro que mi funcion eliga
ese diferente tipo de caluculo ¿ como le hago ? ...aqui mi codigo MUCHAS
GRACIAS

Public Function Pt(CLAVE, KILOS As Double)

'*******DEFINE CLAVES********
Dim Res As Double
Select Case CLAVE
Case "CLR"
TXK = 1.05
CM = 17.55
CALC = MAYOR
Case "CPR"
TXK = 1.4
CM = 21.6
CALC = MAYOR
Case "CFR"
TXK = 1.76
CM = 32.4
CALC = MAYOR

Case "OC"
TXK = 0.64
CF = 11.9
CALC = AMBOS
Case "AC"
TXK = 0.56
CF = 9.8
CALC = AMBOS


Case "PE"
PG = 10
CALC = XGUIA
Case "MS"
PG = 24
CALC = XGUIA

Case Else
End Select
'*******DEFINE EL TIPO DE CALCULO******
Select Case CALC
Case MAYOR
If TXK * KILOS > CM Then
Res = TXK * KILOS
Else
Res = CM
End If

Case AMBOS
Res = TXK * KILOS + CF

Case XGUIA
Res = PG
Case Else
End Select

Pt = Res
End Function

Preguntas similares