Macro con funcion select anidada

En esta ocasión necesito de vuestra ayuda, ya que debo hacer una macro con la función select case anidada . Soy novato en esto de VB.

El profesor nos entrego este código, lo pegue en un modulo de VB, pero no funciona ..

Public Function Grasa1(sexo, edad, Porcgra)
Select Case sexo
Case Is = "M"
Select Case edad
Case 18 To 39
Select Case Porcgra
Case 0 To 21: Grasa1 = "bajo en grasa"
Case 22 To 33: Grasa1 = "normal en grasa"
Case 34 To 39: Grasa1 = "alto en grasa"
Case Is > 39: Grasa1 = "obesidad"
End Select
Case 40 To 59
Select Case Porcgra
Case 0 To 23: Grasa1 = "bajo en grasa"
Case 24 To 34: Grasa1 = "normal en grasa"
Case 35 To 40: Grasa1 = "alto en grasa"
Case Is > 40: Grasa1 = "obesidad"
End Select
Case 60 To 99
Select Case Porcgra
Case 0 To 24: Grasa1 = "bajo en grasa"
Case 25 To 36: Grasa1 = "normal en grasa"
Case 37 To 42: Grasa1 = "alto en grasa"
Case Is > 42: Grasa1 = "obesidad"
End Select
End Select
Case Is = "H"
Select Case edad
Case 18 To 39
Select Case Porcgra
Case 0 To 8: Grasa1 = "bajo en grasa"
Case 9 To 20: Grasa1 = "normal en grasa"
Case 21 To 25: Grasa1 = "alto en grasa"
Case Is > 25: Grasa1 = "obesidad"
End Select
Case 40 To 59
Select Case Porcgra
Case 0 To 11: Grasa1 = "bajo en grasa"
Case 12 To 22: Grasa1 = "normal en grasa"
Case 23 To 28: Grasa1 = "alto en grasa"
Case Is > 28: Grasa1 = "obesidad"
End Select
Case 60 To 99
Select Case Porcgra
Case 0 To 13: Grasa1 = "bajo en grasa"
Case 14 To 25: Grasa1 = "normal en grasa"
Case 26 To 30: Grasa1 = "alto en grasa"
Case Is > 30: Grasa1 = "obesidad"
End Select
End Select
End Select
End Function

La macro debe ejecutarse  sobre tres celdas =GRASA1(sexo; edad; %grasa) a contar de A1, pero no logro entender como deberia quedar la informacion en la hoja1

Ojala me puedan ayudar

Respuesta
2

Me comentas y valoras para finalizar!

Estimado

¿Pero cómo queda la macro?

¿Cómo es el código?

Es el mismo lo copié al módulo

Tu duda fue: "no logro entender como deberia quedar la informacion en la hoja1"

Recuerda valorar correctamente la pregunta

"Macros para copiar datos entre hojas"

La tabla quedaría así

Estimado

Pero la tabla debe quedar con los datos a partir de A1,¿además porque repites 2 veces M?

Estimado

La macro no me aparece para ejercutarla:

La función te funcionará en cualquier celda sin modificar el código.

Solo tienes que hacer que se cumpla la función programada

La función indica Grasa1(sexo, edad, %grasa)

Sexo= puede ser hombre o mujer ( esta puesto H o M)

edad = que están del 18 al 99 

%grasa = que están > 0 


En este caso en la celda E1 escribo la función = Grasa1(B1, C1, D1)

En la columna B1 esta el SEXO

En la columna C1 esta el EDAD

En la columna D1 esta el GRASA

Como se cumple lo calcula la función lo calcula.

Es una función por tanto en la celda E1 escribe el signo =Grasa1(A1, B1, C1)

Esta función lo puedes utilizar en cualquier celda

Estimado

No te entendí nada, nada, como soy novato en esto me cuesta entender los códigos

Me podrías mandar un archivo con el desarrollo de la macro, ¿para entenderlo en vivo?

Este es mi correo

[email protected]

Estimado

Pero tu dices que es una función, ¿pero cómo se ejecuta la macro? ¿Si no aparece?

Por ejemplo si deseas sumar la celda A1 y B1

Utilizaras la función suma: ponemos en C1 =suma(A1, B1) ya está

Y igual pasará con la función que estas trabajando.

Lo ejecutaras poniendo el signo = y seguido del signo grasa1:

tiene quedar así en la celda =grasa1()

Te envié el archivo.

Recuerda valorar saludos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas