Visual Basic - Llamar un resultado de una funcion dentro de otra funcion

Life is soft - evento anual de software empresarial
 
Vista:
Imágen de perfil de MarioJoaquin
Val: 23
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Llamar un resultado de una funcion dentro de otra funcion

Publicado por MarioJoaquin (10 intervenciones) el 25/01/2019 04:35:15
Buenas noches,
he hecho un fucnion para calcular un operacio matematica:

1
2
3
4
5
6
7
8
9
10
11
12
Function isss(Salario As Double)
 
Const Max_isss = 1000
pisssl = 0.03
 
If Salario < Max_isss Then
    isss = (Salario * pisssl)
Else
    isss = (Max_isss * pisssl)
End If
 
ret_ISSS = isss

y resultado de esta funcion isss, la quiero usar dentro de otra funcion ya que esta debe restar un total antes de realizar otro calculo... alguien me puede ayudar indicandome como se hace para llamar el resulado de esa funcion dentro de la nueva funcion.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Function ISRM(Resultado As Double)
 
descuentos = isss
base = Resultado - descuentos
 
If base > 0.01 And base <= 472 Then
ISRM = 0
 
ElseIf base >= 472.01 And base <= 895.24 Then
ISRM = ((base - 472) * 0.1) + 17.67
 
ElseIf base >= 895.25 And base <= 2038.1 Then
ISRM = ((base - 895.24) * 0.2) + 60
 
ElseIf base >= 2038.11 Then
ISRM = ((base - 2038.1) * 0.3) + 288.57
 
End If
 
Restultado = ISRM
 
End Function

No quiero usar sub porque la primera funcion la utilizo en una casilla como formula.

gracias por su ayuda.

Mario
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
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Llamar un resultado de una funcion dentro de otra funcion

Publicado por Antoni Masana (565 intervenciones) el 25/01/2019 09:55:40
En primer lugar presentemos bien el código:

1
2
3
4
5
6
7
8
9
Function isss(Salario As Double)
    Const Max_isss = 1000
    Const pisssl = 0.03
    If Salario < Max_isss Then
        isss = (Salario * pisssl)
    Else
        isss = (Max_isss * pisssl)
    End If
End Function

Se llama asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Function ISRM(Resultado As Double)
    Dim Base AS Double
 
    Base = Resultado - isss(Resultado)
 
    If Base > 0.01 And base <= 472 Then
        ISRM = 0
 
    ElseIf Base >= 472.01 And Base <= 895.24 Then
        ISRM = ((Base - 472) * 0.1) + 17.67
 
    ElseIf Base >= 895.25 And Base <= 2038.1 Then
        ISRM = ((Base - 895.24) * 0.2) + 60
 
    ElseIf Base >= 2038.11 Then
        ISRM = ((Base - 2038.1) * 0.3) + 288.57
    End If
End Function


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
Imágen de perfil de Mario Joaquin
Val: 23
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Llamar un resultado de una funcion dentro de otra funcion

Publicado por Mario Joaquin (10 intervenciones) el 25/01/2019 14:39:45
Muchas gracas Antoni Masana por tu respuesta, tomare cuenta tus comentarios sobre en la presentación de los códigos, ya hice los correciones y las funciones me funcionan de maravila.

Un abrazo,

Mario Joaquin
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