No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Uso de Select Case en Visual Basic para Condicionales

12/17
Recursos

¿Qué es Select Case y cómo se utiliza?

En el mundo de la programación, ser capaz de manejar diferentes casos o escenarios es esencial. Aquí es donde el uso de Select Case se convierte en una herramienta poderosa en tus funciones y subrutinas dentro de Visual Basic. Este bloque de control permite especificar múltiples condiciones para una variable, otorgándote el control de qué instrucciones ejecutar con base en el valor de dicha variable. Al realizar un análisis exhaustivo de todos los posibles casos que pueda tomar una variable dentro de tu función, puedes asegurar un flujo lógico y sin errores en tu código.

¿Cómo se estructura una función con Select Case?

Para comenzar a implementar Select Case, es necesario definir una función que reciba argumentos y devuelva un resultado. Un ejemplo común es el uso de una función llamada sc, que debe recibir tres números enteros, sumarlos y determinar si la suma es negativa, cero o positiva. Este es el proceso detallado para configurarla:

  1. Definición de la función: Escribe Public Function sc con tres parámetros: a, b y c.
  2. Variable de suma: Define a través de Dim suma as Integer una variable que almacenará la suma de a, b y c.
  3. Uso de Select Case: Implementa Select Case suma para evaluar el valor de la suma y escribe los diferentes cases:
    • Case Is < 0: Significa que la suma es negativa.
    • Case Is = 0: Indica que la suma resulta en cero.
    • Case Else: Captura los casos en que la suma es positiva, siendo exhaustivos en todos los posibles resultados.

¿Cuáles son las mejores prácticas para utilizar Select Case?

Utilizar Select Case adecuadamente implica seguir algunas prácticas recomendadas que asegurarán que tu código sea claro y eficiente:

  • Exhaustividad en casos: Asegúrate de considerar todos los posibles valores y situaciones en los cases. Utiliza Case Else para cubrir cualquier valor que no haya sido contemplado previamente.
  • Comentarios claros: Incluye comentarios en el código que expliquen cada sección de los cases, lo que resulta útil para el mantenimiento y comprensión del código a largo plazo.
  • Validación de datos: Antes de ingresar los datos en la función, es importante validarlos para evitar resultados inesperados.

¿Cómo puedo probar la función Select Case?

Una vez que has creado tu función, la prueba es clave para asegurarse de que todos los casos se ejecutan correctamente. Esto se puede hacer utilizando la ventana inmediata de Visual Basic:

  • Prueba para valores negativos: Probar con sc(-8, 5, 0) debería devolver "negativo".
  • Prueba para suma igual a cero: Con sc(2, -1, -1) debe regresar "cero".
  • Prueba para valores positivos: Al usar sc(3, 4, 5), la función debería dar como resultado "positivo".

Esta metodología no solo verifica que la función opere como se desea, sino que también te ayuda a detectar posibles errores o casos no cubiertos.

Anímate a implementar Select Case en tus propios proyectos y verás cómo aumenta la claridad y organización de tu código. Escoge ejemplos diferentes, como clasificar números por paridad o comparar con tu edad, y comparte tus experiencias y retos alcanzados al utilizar esta poderosa instrucción en el mundo de la programación. ¡La práctica es la clave para el dominio!

Aportes 159

Preguntas 8

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

un caso para el cual te respondo automaticamente si salimos o no de fiesta (jaajjaa)

' prueba si es mayor de edad y puede salir a tomar
Public Function edad() As Integer
    
    Dim nacimiento As Integer
    Dim a
    Dim b
    Dim año As Integer
    Dim tomar
    año = InputBox("ingrese el año de nacimiento", "Año de nacimiento")
    nacimiento = 2022 - año
    a = MsgBox("tu edad es de " & nacimiento, , "edad")
    Select Case nacimiento
        Case Is >= 19
            tomar = " a tomar"
        Case Else
            tomar = " no puedes tomar"
    End Select
    b = MsgBox("si deseas pero" & tomar, , "salimos")
    
End Function

Es buena a explicación, pero no me queda claro como se usará en la hoja de excel. Es decir sólo se ejecuta en Visual Basic pero no me queda claro como usalro en la hoja de calculo.

Este curso es para aquel que no haya programado nunca, muy básico
Deberían tratar ejemplos mas complejos de la vida diaria de una empresa y con mas contenido y que dure mas tiempo (2horas ¿?).

¡Calculadora de IMC-Índice de Masa Corporal!, se aceptan observaciones-GRACIAS

Este es un caso en el que elijo que hacer si eres mayor o menor de edad

Public Function edad1() As Integer

    Dim año_nacimiento As Integer
    Dim edad As Integer
    Dim a
    Dim mayor_edad As String
    Dim b
    
    año_nacimiento = InputBox("Digite su año de nacimiento", "Año de nacimiento")
    edad = 2022 - año_nacimiento
    a = MsgBox("Su edad es de " & edad, , "Años de edad")
    
    Select Case edad
        Case Is >= 18
            mayor_edad = "tienes que tener cuidado"
        Case Else
            mayor_edad = "solo toma juguito de naranja"
            
        End Select
    b = MsgBox("El consumo de alcohol es perjudicial para la salud, " & mayor_edad, , "Ley 42-01")
    
End Function

Creé una subrutina para detectar peruanos:

Considero chévere el curso, pero es más bien algo así como un Curso de Excel Básico con Macros de VBA, mucha fundamentación, la cual no se aplica en el manejo de datos en una hoja.

Aquí hice un código para ver si es par o no el número:

Public Function par(A As Integer) As String
Dim modulo As Double
modulo = A Mod 2
Select Case modulo
Case Is = 0
par = "Es par"
Case Else
par = "No es par"
End Select

End Function

Ahi va el reto

Public Function edad(A As Integer, B As Integer) As String

    Dim años As Integer
    
    años = A + B
    
    Select Case años
        Case Is < 30
            edad = " menor"
        Case Is = 30
            edad = "Contemporaneos"
        Case Else
            edad = "Mayor"
            
        End Select
    
    
End Function

Quise hacer un pequeño juego para adivinar un número aleatorio del 1 al 3

Public Function SC(Numero As Integer) As String
Dim a
Numero = InputBox(“Num1”, “Adivina el número de 1 al 3”)
Random = Int((rnd * 3) + 1)

Select Case Numero
Case Is < Random
SC = "Perdiste, " & "el número escondido era: " & Random
Case Is = Random
SC = “¡GANASTE!” & "el número escondido era: " & Random
Case Else
SC = "Perdiste, " & "el número escondido era: " & Random

a = MsgBox(SC)

End Select
End Function

ASIGNAR MACRO A UN BOTON
Desarrollamos el mismo ejercicio de la clase aplicando una subrutina y luego lo asignamos a un BOTON. Insertamos los numeros ingresados y el resultado de la suma en la hoja1.

Por sí tienen problemas con las macros, en donde les manda un mensaje que no están habilitadas: Para habilitar macros en Excel, debes cambiar la configuración de seguridad de macros en las opciones de Excel. Aquí te explico cómo hacerlo paso a paso: ### Habilitar Macros en Excel 1. **Abrir Excel**: * Inicia Excel y abre el libro en el que deseas habilitar las macros. 2. **Acceder a las Opciones de Excel**: * Haz clic en la pestaña **Archivo** (en versiones anteriores puede ser el botón de Office). * Selecciona **Opciones** al final del menú. 3. **Centro de Confianza**: * En la ventana de **Opciones de Excel**, selecciona **Centro de confianza** en el panel de la izquierda. * Haz clic en **Configuración del Centro de confianza**. 4. **Configuración de Macros**: * En la ventana del **Centro de confianza**, selecciona **Configuración de macros** en el panel de la izquierda. * Aquí tienes varias opciones: * **Deshabilitar todas las macros sin notificación**: Bloquea todas las macros y no muestra ninguna notificación. * **Deshabilitar todas las macros con notificación**: Deshabilita las macros, pero muestra una notificación para habilitarlas cuando se abre un archivo que contiene macros. * **Deshabilitar todas las macros excepto las firmadas digitalmente**: Permite solo las macros que están firmadas con un certificado digital de confianza. * **Habilitar todas las macros (no recomendado, puede ejecutarse código potencialmente peligroso)**: Habilita todas las macros sin ninguna restricción. **No se recomienda** por motivos de seguridad. * **Confiar en el acceso al modelo de objeto de proyecto de VBA**: Esta opción es para permitir que el código VBA acceda al modelo de objetos de VBA, generalmente no es necesario activarlo para la mayoría de las tareas con macros estándar. 5. **Seleccionar la Configuración Deseada**: * Selecciona **Deshabilitar todas las macros con notificación** si deseas recibir una notificación cada vez que un archivo con macros se abra, permitiéndote decidir si habilitarlas. * Si confías plenamente en los archivos que vas a abrir y deseas habilitar todas las macros, selecciona **Habilitar todas las macros (no recomendado, puede ejecutarse código potencialmente peligroso)**. 6. **Guardar Cambios**: * Haz clic en **Aceptar** para cerrar la ventana de configuración del Centro de confianza. * Haz clic en **Aceptar** nuevamente para cerrar las Opciones de Excel. ### Habilitar Macros para un Archivo Específico Si no deseas cambiar la configuración global de seguridad de macros, también puedes habilitar macros solo para un archivo específico. 1. **Abrir el Archivo**: * Abre el archivo de Excel que contiene las macros. 2. **Habilitar Contenido**: * Si las macros están deshabilitadas, Excel mostrará una barra amarilla en la parte superior del archivo con un botón que dice **Habilitar contenido**. * Haz clic en **Habilitar contenido** para permitir que las macros del archivo se ejecuten. ### Conclusión Habilitar macros puede ser necesario para trabajar con funciones avanzadas y automatización en Excel, pero es importante ser cauteloso debido a los riesgos de seguridad que pueden representar las macros maliciosas. Cambia la configuración solo si confías en el origen de los archivos con macros.

Comparto mi ejercicio de Select Case para saber si un numero es par o impar

Select Case es una estructura en Visual Basic que permite evaluar y manejar distintos casos de una variable en funciones o subrutinas. Cada caso se define mediante “Case” con condiciones específicas, como valores negativos, cero o positivos, y se ejecutan instrucciones correspondientes. Es crucial ser exhaustivo y considerar todos los posibles casos.

Comparto un código para calcular cuál es el impuesto y salario neto mensual, de acuerdo a los tramos de la escala salarial en República Dominicana: ![](https://static.platzi.com/media/user_upload/image-fef4b960-14c2-4b98-b1f8-371f64461dd5.jpg)
'IsPAr :)
Public Function IsPar(num As Integer) As String
    Dim par As Integer
    par = num Mod 2
    Select Case par
        Case Is = 0
            IsPar = "Es par"
        Case Else
            IsPar = "No es par"
    End Select
End Function

Comparto mi ejercicio.
En este caso realicé una simulación de la nota promedio requerida para aprobar una Materia con 3 casos distintos:

  1. Nota promedio < 6 (Reprobado)

  2. Nota promedio < 9, > 6 (Aprobado)

  3. Nota Promedio > 9 (Exelente)

Comparto Visualización mi Macro con el uso de Select Case, donde se califica las notas para aprobar el curso.

Public Function SC(A As Integer) As String

Dim Suma As Integer
Suma = A

Select Case Suma
    Case Is < 12
        SC = "Es un niño"
    Case 12 To 21
        SC = "Es adolescente" 
    Case Is > 21
        SC = "Es un adulto"
End Select

End Function

Yo realice una calculadora de tipo imc


El resultado lo hice por medio de un msgbox

Sí que aprendí bastante con este código, casi no lo termino bien. Este es un sistema de evaluación de desempeño, para calificar objetivos. `Public Function Evaluacion() As String` ` Dim Objetivo_1 As Integer` ` Dim Objetivo_2 As Integer` ` Dim Objetivo_3 As Integer` ` Dim a` ` Dim Calificacion As Integer` ` ` ` ` ` Objetivo_1 = InputBox("Ingrese su calificacion de 0 a 100", "Calificacion Objetivo 1")` ` Objetivo_3 = InputBox("Ingrese su calificacion de 0 a 100", "Calificacion Objetivo 2")` ` Objetivo_3 = InputBox("Ingrese su calificacion de 0 a 100", "Calificacion Objetivo 3")` ` ` ` Calificacion = Objetivo_1 + Objetivo_2 + Objetivo_3` ` ` ` Select Case Calificacion` ` ` ` Case Is < 150` ` a = MsgBox("Necesita mejorar")` ` Case Is > 150` ` a = MsgBox("Alcanzado")` ` Case Is = 300` ` a = MsgBox("Excedido")` ` End Select` ` ` `End Function`
![](https://static.platzi.com/media/user_upload/upload-a68ebc94-45e9-4824-9589-0984eb608e73.png)
![](https://static.platzi.com/media/user_upload/upload-c4b2ddb5-6d9f-4f30-a970-fa90c88dbe65.png)```js ```
Codigo en VBA definiendo tres variables para saber si un proyecto esta dando perdidas o ganancias `Public Function GS(Facturado As Long, Compras As Long, Nominas As Long) As String` ` Dim Ganancias As Long` ` Ganancias = Facturado / (Compras + Nominas)` ` Select Case Ganancias` ` Case Is > 1.35` ` GS = "Excelente"` ` Case Is > 1.1` ` GS = "Bueno"` ` Case Is > 1` ` GS = "Aceptable"` ` Case Else` ` GS = "Perdidas"` ` End Select` `End Function`
Select Case es una estructura de control en VBA que permite evaluar una expresión y ejecutar bloques de código basados en el resultado de esa evaluación. Es útil para manejar múltiples condiciones de manera más organizada que usando múltiples instrucciones If. En el contexto de la clase, se utiliza para determinar si la suma de tres números es negativa, cero o positiva, permitiendo ejecutar instrucciones específicas para cada caso. Este enfoque mejora la legibilidad y el mantenimiento del código. La sintaxis básica de `Select Case` en VBA es la siguiente: ```js Select Case expresión Case valor1 ' Instrucciones si la expresión es igual a valor1 Case valor2 ' Instrucciones si la expresión es igual a valor2 Case Else ' Instrucciones si no coincide con ningún valor anterior End Select ```Este bloque evalúa la `expresión` y ejecuta el bloque de código correspondiente al primer `Case` que coincida. Es útil para manejar múltiples condiciones de manera más clara y concisa que usando múltiples `If...Else`.
La asignación: ![](https://static.platzi.com/media/user_upload/image-f137fc33-26f0-4343-a808-cd4f4e0ef605.jpg)
Public Function Edad1() As Integer Dim Nacimiento As Integer Dim Edad As Integer Dim A Dim B Dim R1 Nacimiento = InputBox("Digita el año que naciste", "Nacimiento") Edad = Year(Now) - Nacimiento Edad1 = Edad A = MsgBox("Su edad es de " & Edad, , "Años de edad") Select Case Edad Case Is >= 18 R1 = "Acceso exitoso, procede a conocer, recuerda si son de padres separados, preguntales si fueron a terapia en su pasado" Case Else R1 = "Acceso denegado, rechaza la solicitud, deribala a su hogar y luego anda a ejercitarte" End Select B = MsgBox("El consumo de alcohol no se romantiza. " & R1, , "Éxito, haz siempre lo correcto") End Function
Buen día Comparto resultados de mi ejercicio: ![](https://static.platzi.com/media/user_upload/image-b81d2645-b2ba-4f7f-bbd0-4b2f16a035f7.jpg) Feliz día
Hice un ejemplo rápido, es el siguiente: ![](https://static.platzi.com/media/user_upload/image-1e72bf06-563a-467d-8b56-1defccf2ffbe.jpg) La función determina si el número es mayor, menor o igual a 73. Ese es todo, gracias:)
![](https://static.platzi.com/media/user_upload/image-2c8bb414-b8fc-4bc4-a607-15580804854c.jpg)
Generaciones ![](https://static.platzi.com/media/user_upload/image-f2857fbc-8f6c-4f98-a7e6-6a35b06530e4.jpg)
Generación a la que perteneces: ![](https://static.platzi.com/media/user_upload/image-cb3fd023-06bb-4641-9455-d33adc26104e.jpg)
Encuentra la generación a la que pertenece: ![](https://static.platzi.com/media/user_upload/image-fd6d4705-b7ae-4108-8479-02d1284bc599.jpg)
![](https://static.platzi.com/media/user_upload/image-6e49a18f-41f2-43e0-9dc9-022b29c2c8ca.jpg) ![](https://static.platzi.com/media/user_upload/image-8783f9f4-1558-498d-b3cf-72b89e34761c.jpg)
Un codigo que te dice si te puedar dar un "gustito" dependiendo del salario que ganas: ![](https://static.platzi.com/media/user_upload/image-03769669-a307-40cf-bc33-ac3be55cb42f.jpg)
![](https://static.platzi.com/media/user_upload/image-36ee4c95-d9e3-4399-9560-fa7300f3c5c0.jpg):)
Mi proyecto calcula la fecha probable de un parto, con una duración normal de 9 meses, basado en la fecha de la última menstruación. ![](https://static.platzi.com/media/user_upload/Screenshot%202025-01-18%20120539-d95e309c-953a-4020-9d03-d0133a360c99.jpg) ![](https://static.platzi.com/media/user_upload/Screenshot%202025-01-18%20121118-3ebf790e-9df3-4b1a-8df2-cd36e83cdc92.jpg) ![](https://static.platzi.com/media/user_upload/Screenshot%202025-01-18%20121238-06e4b9c5-32d0-4830-934e-3373f2df62aa.jpg) ```js Public Function FPP() As Integer Dim Dia_Ult_Regla As Integer Dim Mes_Ult_Regla As Integer Dim Año_Ult_Regla As Integer Dim Dia As Integer Dim Mes As Integer Dim Año As Integer Dim Mes_del_Año Dim Resultado Dia = InputBox("Cual fue el primer día de su última regla", "Calculo fecha probalbe de parto") Dia_Ult_Regla = Dia + 7 Mes = InputBox("Cual fue el número del mes de su última regla", "Cálculo fecha probable de parto") Mes_Ult_Regla = Mes - 3 Mes_del_Año = Mes_Ult_Regla * 1 Select Case Mes_del_Año Case Is = -2 Mes_del_Año = "Octubre del presente año" Case Is = -1 Mes_del_Año = " Noviembre del presente año" Case Is = 0 Mes_del_Año = "Diciembre del presente año" Case Is = 1 Mes_del_Año = "enero del siguiente año" Case Is = 2 Mes_del_Año = "Febrero del siguiente año" Case Is = 3 Mes_del_Año = " Marzo del siguiente año" Case Is = 4 Mes_del_Año = " Abril del siguiente año" Case Is = 5 Mes_del_Año = "Mayo del siguiente año" Case Is = 6 Mes_del_Año = "Junio del siguiente año" Case Is = 7 Mes_del_Año = "Julio del siguiente año" Case Is = 8 Mes_del_Año = "Agosto del siguiente año" Case Is = 9 Mes_del_Año = "Septiembre del siguiente año" End Select Resultado = MsgBox("Su fecha probable de parto es: El día " & Dia_Ult_Regla & " del mes de " & Mes_del_Año, , "Resultado") End Function ```Public Function FPP() As Integer Dim Dia\_Ult\_Regla As Integer Dim Mes\_Ult\_Regla As Integer Dim Año\_Ult\_Regla As Integer Dim Dia As Integer Dim Mes As Integer Dim Año As Integer Dim Mes\_del\_Año Dim Resultado Dia = InputBox("Cual fue el primer día de su última regla", "Calculo fecha probalbe de parto") Dia\_Ult\_Regla = Dia + 7 Mes = InputBox("Cual fue el número del mes de su última regla", "Cálculo fecha probable de parto") Mes\_Ult\_Regla = Mes - 3 Mes\_del\_Año = Mes\_Ult\_Regla \* 1 Select Case Mes\_del\_Año Case Is = -2 Mes\_del\_Año = "Octubre del presente año" Case Is = -1 Mes\_del\_Año = " Noviembre del presente año" Case Is = 0 Mes\_del\_Año = "Diciembre del presente año" Case Is = 1 Mes\_del\_Año = "enero del siguiente año" Case Is = 2 Mes\_del\_Año = "Febrero del siguiente año" Case Is = 3 Mes\_del\_Año = " Marzo del siguiente año" Case Is = 4 Mes\_del\_Año = " Abril del siguiente año" Case Is = 5 Mes\_del\_Año = "Mayo del siguiente año" Case Is = 6 Mes\_del\_Año = "Junio del siguiente año" Case Is = 7 Mes\_del\_Año = "Julio del siguiente año" Case Is = 8 Mes\_del\_Año = "Agosto del siguiente año" Case Is = 9 Mes\_del\_Año = "Septiembre del siguiente año" End Select Resultado = MsgBox("Su fecha probable de parto es: El día " & Dia\_Ult\_Regla & " del mes de " & Mes\_del\_Año, , "Resultado") End Function
![](https://static.platzi.com/media/user_upload/image-8bd81917-f0c2-4e9a-bc7d-7c46580de399.jpg)
Tu función está casi completa, pero hay un pequeño error en la comparación de los casos en el `Select Case`. Aquí está la corrección: ```vb Public Function SC(A As Integer, B As Integer, C As Integer) As String Dim Suma As Integer Suma = A + B + C Select Case Suma Case Is < 0 SC = "Negativo" Case 0 SC = "Intermedio" Case Is > 0 SC = "Positivo" End Select End Function ``` En el segundo caso, no necesitas usar `Is = 0`, simplemente usa `0`. Esto mejorará la claridad y el funcionamiento del código.
Reto: Clasificación por edad para el tramite de licencia de conducción. ![](https://static.platzi.com/media/user_upload/image-9d6d4849-263d-471d-bee4-d6fceb3cd659.jpg) ![](https://static.platzi.com/media/user_upload/image-3b73842a-3bff-4b72-a625-5586bcca873e.jpg) ![](https://static.platzi.com/media/user_upload/image-886ac59a-0f7b-45d1-929d-55cc43a75858.jpg) ![](https://static.platzi.com/media/user_upload/image-ffb8c664-9562-40e8-9ef0-33c5e8c07eb8.jpg)
Desarrolle un selector de botellas aplicando los conocimientos aprendidos. ![](https://static.platzi.com/media/user_upload/image-087f7896-a730-4d89-81f9-bec383b63c11.jpg)![](https://static.platzi.com/media/user_upload/image-1be22f9b-7ac4-4a2a-bbb3-a14d9b3178e4.jpg)
El `Select Case` y el `If` anidado permiten evaluar condiciones, pero funcionan de manera diferente. `Select Case` es ideal cuando se tienen múltiples opciones a evaluar para una misma variable, mejorando la legibilidad del código. Por otro lado, `If` anidado es útil para condiciones complejas y permite más flexibilidad en la lógica de comparación. Ambos tienen su uso dependiendo de la situación, pero `Select Case` suele ser más limpio en casos de múltiples condiciones.
Determinar la mayoría de edad, se puede agregar un caso para edades mayores a 100 y que lance un error como en números menores o iguales a 0![](https://static.platzi.com/media/user_upload/image-1992e6ee-0c37-45ba-a229-1f9f78e319cf.jpg)
Dejo un caso sobre como saber si pasas la materia o no jajaja, se muestran los intentos que hice para corregir un error que tenia al calcular el promedio. ![](https://static.platzi.com/media/user_upload/Select%20Case-91ac7d7e-301f-45a1-8c37-c0d8d2ed77c7.jpg)
Edad en año y meses ![](https://static.platzi.com/media/user_upload/Ejercicio4_SelectCase2-f0b68d3c-7821-4c8a-919f-4ae2bfb0cc45.jpg) ![](https://static.platzi.com/media/user_upload/Ejercicio4_SelectCase1-14223e2a-a153-4ce8-bacc-88812ad05c18.jpg)
operacion para saber si un numero es par `Public Function numPar(num As Integer)` ` ` ` Dim operation As Integer` ` operation = num Mod 2` ` ` ` Select Case operation` ` Case Is > 0` ` numPar = "Impar"` ` Case Else` ` numPar = "Es par"` ` End Select` ` ` `End Function`
![](https://static.platzi.com/media/user_upload/image-900b6518-ef2a-4de7-8ce5-9a4c4ecace9f.jpg)
Para hacerlo más sencillo encontré una función que hace el cálculo del residuo por el número que le marques: Mod X. En este caso la usé como Mod 2 para poder utilizar y ver si es Par o Impar. Les dejo la fórmula aquí: `Public Function SC_P_or_I(A As Integer, B As Integer, C As Integer) As String` ` ` ` Dim suma As Integer` ` ` ` suma = A + B + C` ` ` ` Select Case suma Mod 2` ` Case 0` ` SC_P_or_I = "Par"` ` Case 1` ` SC_P_or_I = "Impar"` ` End Select` `End Function`
En este caso me siento más cómodo con las fórmulas que ya trae Excel, pero es bueno saber hacerlo por medio del código también, aunque ya le encontraré un caso para usarlo. ¿Ustedes de qué manera les gusta más? ![](https://static.platzi.com/media/user_upload/image-4dea050a-e307-4b27-8c5e-ba44e1f32129.jpg)
![](https://static.platzi.com/media/user_upload/image-aae3539c-55da-452b-95e6-fe133c4749fb.jpg)
Quiero compartirles este codigo, trate de arrojar si es mayor o menor de edad, al parecer todo esta bien pero cuando evalua el 2022 o 2015 que sería menor de edad aparece mayor de edad les agradezco y pueden deducir el error. Public Sub SC2() Dim Edad As Integer Dim a As String Dim r As String Dim result As String Edad = InputBox("Ingrese su año de nacimiento", Año\_de\_nacimiento) r = 2024 - Edad Select Case r Case Is < 18 result = "Menor" Case Else result = "Mayor" End Select a = MsgBox("Eres " & result & " de edad") End Sub
Este fue el que hice jaja ```js Public Function nota(nota1 As Double, nota2 As Double, nota3 As Double, nota4 As Double) notafinal = (nota1 + nota2 + nota3 + nota4) / 4 Select Case notafinal Case Is >= 3 nota = "Aprovado" Case Else nota = "Reprovado" End Select End Function ```
Dim resultar As Integer resultar = (a + b) Mod 2 Select Case resultar Case Is = 0 tipodenume = "par" Case Else tipodenume = "impar" End Select End Function
Hola! Les dejo el código que implementé para este ejercicio. Me costó un poco, ahí voy tomando el ritmo de este entendimiento:![](https://static.platzi.com/media/user_upload/image-d9e23fba-458b-4656-94d7-558ed9cff078.jpg)
```ts 'Para avaluadores' 'Ejercicio para verificar el resultado de un análisis estadístico de 3 muestras esta dentro del rango permitido regulado por la resolución 620 de 2008 IGAC" 'Este rango menciona que si el resultado es mayor a 7.5% en el coeficiente de variación la muestra se debe ajustar' Public Function var(A As Double, B As Double, C As Double) As String A = InputBox("Ingrese el primer número") B = InputBox("Ingrese el segundo número") C = InputBox("Ingrese el tercer número") ' Calcular la media Dim prom As Double prom = (A + B + C) / 3 ' Calcular la suma de los cuadrados de las diferencias con la media Dim sumaCuadrados As Double sumaCuadrados = ((A - prom) ^ 2 + (B - prom) ^ 2 + (C - prom) ^ 2) ' Calcular la desviación estándar Dim desviacionEstandar As Double desviacionEstandar = ((sumaCuadrados / 3) ^ 0.5) ' Calcular el coeficiente de variación Dim Coefvariacion As Double Coefvariacion = (desviacionEstandar / prom) * 100 ' Devolver el resultado como cadena de texto Select Case Coefvariacion Case Is <= 7.5 var = "Dentro del rango permitido = " & Coefvariacion Case Is > 7.5 var = "Fuera del rango permitido, revisar = " & Coefvariacion End Select End Function ```Si alguien lo puede revisar, gracias.
Hola! Les dejo mi ejemplo de función de Select Case para los permisos de edad en EEUU ![](https://static.platzi.com/media/user_upload/image-8f3b754d-92b5-4312-a328-419591813fcc.jpg) ![](https://static.platzi.com/media/user_upload/image-d4393acd-fc6e-433a-8ee2-007c4f1cf0c3.jpg)
![](https://static.platzi.com/media/user_upload/image-76edd9a0-75e2-439c-b6eb-31ce24c6e9bb.jpg)

😃

<' RETO PARA SABER SI ES MENOR O MAYOR DE EDAD

Public Function edad(a As Integer) As String
    Dim años As Integer
    
    años = a
    
    Select Case años
        Case Is < 18
            edad = "Menor de edad"
        Case Else
            edad = "Mayor de edad"
    End Select
    
End Function
> 

calcular el % de cogs

!

Ejemplo de aprobacion del curso con select case:

Ejercicio ![](https://static.platzi.com/media/user_upload/image-7642341e-3e01-4a14-bc88-b80e8a9c6d39.jpg)
Para Evaluar si el resultado de las suma de 3 numeros es un numero Par o Impar![](https://static.platzi.com/media/user_upload/image-f2b8519b-8e2a-4430-94b8-8c4ffb366997.jpg)
![](https://static.platzi.com/media/user_upload/image-31661239-9735-4586-9559-5ea230e12b74.jpg)

Ahí esta mi ejemplo que asigna a un grupo poblacional por un rango de edad.

Comparto mi ejercicio que consiste en simular echar una moneda al aire y aleatoriamente indicar si cae cara o sello. ![](https://static.platzi.com/media/user_upload/image-d1196c9e-c560-4a86-a9ab-50c862c9570b.jpg)
Aporte de ejercicio tema Select Case ![](https://static.platzi.com/media/user_upload/image-9f6b9834-c350-477b-9a36-607a90bfdb0f.jpg)
Comparto un código para calcular cuál es el impuesto y salario neto mensual, de acuerdo a los tramos de la escala salarial en República Dominicana: ```txt Public Function ISR() As Single Dim salario_mensual As Single Dim salario_anual As Single Dim salario_neto As Single Dim impuesto As Single Dim b salario_mensual = InputBox("Digite su salario mensual", "Salario mensual") salario_anual = Format(salario_mensual * 12, "#,##0") Select Case salario_anual Case Is <= 416220 impuesto = 0 Case 416220.01 To 624329 impuesto = (salario_anual - 416220.01) * 0.15 Case 624329.01 To 867123 impuesto = (salario_anual - 624329.01) * 0.2 + 31216 Case Else impuesto = (salario_anual - 867123.01) * 0.25 + 79776 End Select salario_neto = (salario_anual - impuesto) / 12 impuesto_mensual = impuesto / 12 b = MsgBox("Tu salario bruto es " & Format(salario_mensual, "#,##0.00") & ", de impuesto te cobran " & Format(impuesto_mensual, "#,##0.00") & " y tu salario neto es " & Format(salario_neto, "#,##0.00") & ".", , "Salario neto") End Function ```Public Function ISR() As Single Dim salario\_mensual As Single Dim salario\_anual As Single Dim salario\_neto As Single Dim impuesto As Single Dim b salario\_mensual = InputBox("Digite su salario mensual", "Salario mensual") salario\_anual = Format(salario\_mensual \* 12, "#,##0") Select Case salario\_anual Case Is <= 416220 impuesto = 0 Case 416220.01 To 624329 impuesto = (salario\_anual - 416220.01) \* 0.15 Case 624329.01 To 867123 impuesto = (salario\_anual - 624329.01) \* 0.2 + 31216 Case Else impuesto = (salario\_anual - 867123.01) \* 0.25 + 79776 End Select salario\_neto = (salario\_anual - impuesto) / 12 impuesto\_mensual = impuesto / 12 b = MsgBox("Tu salario bruto es " & Format(salario\_mensual, "#,##0.00") & ", de impuesto te cobran " & Format(impuesto\_mensual, "#,##0.00") & " y tu salario neto es " & Format(salario\_neto, "#,##0.00") & ".", , "Salario neto") End Function
![](https://static.platzi.com/media/user_upload/image-f97f49fb-8d25-43fb-b7f3-20d0d3c57db6.jpg)

![](

Aquí les dejo el codigo que hice, que indica si es hora de comer o no

Public Function eat(Hora As Integer) As String

    Select Case Hora
        Case Is = 5
            eat = "Hora de Desayunar"
        Case Is = 6
            eat = "Hora de Desayunar"
        Case Is = 7
            eat = "Hora de Desayunar"
        Case Is = 12
            eat = "Hora de Almorzar"
        Case Is = 13
            eat = "Hora de Almorzar"
        Case Is = 14
            eat = "Hora de Almorzar"
        Case Is = 19
            eat = "Hora de Cenar"
        Case Is = 20
            eat = "Hora de Cenar"
        Case Is = 21
            eat = "Hora de Cenar"
        Case Else
            eat = "No es Hora de Comer :("
        
    End Select
    
            

End Function
Public Function CheckLegalDrinkingAge() As Integer

    Dim birthYear As Integer
    Dim currentYear As Integer
    Dim drinkMessage As String

    On Error GoTo ErrorHandler
    birthYear = CInt(InputBox("Which year were you born in?"))
    
    currentYear = year(Now)
    CheckLegalDrinkingAge = currentYear - birthYear

    MsgBox "You are " & CheckLegalDrinkingAge & " years old.", vbInformation, "Age"

    Select Case CheckLegalDrinkingAge
        Case Is >= 19
            drinkMessage = "Go ahead!"
        Case Else
            drinkMessage = "Not today, young one!"
    End Select
    
    MsgBox "If you want to drink, " & drinkMessage, vbInformation, "Drinking Advice"
    Exit Function

ErrorHandler:
    MsgBox "Please enter a valid year.", vbExclamation, "Error"

End Function

Buen día,

adjunto mi aporte

Public Function pares(A As Integer, B As Integer, C As Integer) As String
    Dim suma As Integer
    suma = A + B + C
    Select Case suma Mod 2
        Case Is = 0
        MsgBox ("la suma es par")
        Case Is = 1
        MsgBox ("la suma es impar")
    End Select
      
    
    
End Function

En mi caso elaboré una macro que identificara sí la suma de tres numeros enteros da como resultado un número par o impar.
Para conseguirlo utilizé la función Mod para obtener el residuo de la división del número obtenido de la suma entre 2. Con esto pude identificar dos casos, sí l residuo de la división es “1”, se refiere a un número impar, en caso de que el residuo de la división sea “0”, se trata de un número par.

Espero sea de utilidad compañeros.

Hola! Realicé una función con lo aprendido en esta clase para mostrar la condición de cada alumno al respecto con la nota de parcial, si promociona, aprueba o desaprueba el examen.

<
Public Function condi(nota_parcial As Integer) As String
    Dim a
    
    nota_parcial = nota_parcial
    
    Select Case nota_parcial
        Case Is >= 7
        condi = "Promociona"
        Case Is >= 4
        condi = "Aprobado"
        Case Is < 4
        condi = "Desaprobado"
    End Select
    
    a = MsgBox("¡Nunca pares de aprender!", , "ATR")
End Function> 

Usando la función en la hoja:

Apenas estoy aprendiendo, pero creo que voy muy bien 👌😎

Reto cumplido: Funcion que determine si un numero es par o impar

Public Function SC2(A As Integer) As String
   
Select Case A Mod 2
    
    Case Is = 0
        SC2 = "El número es par"
            
    Case Else
        SC2 = "El numero es impar"
        
   End Select



End Function

En este ejercicio quise que el usuario ingresara su año de nacimiento, para ello coloque un InputBox de solicitud de ingreso del año de nacimiento, luego se hace un cálculo de la edad del usuario que resultara de restar a la fecha actual el año de nacimiento ingresado por el usuario, ya con ese valor de la edad , hacer un comparativo con SELECT CASE donde compare mi edad con la del usuario, y para cada caso que se pueda presentar un mensaje para cada caso con MsgBox, que dirá si es mayor , menor o somos de la misma edad :

Public Function ParoImpar(numero As Integer) As String
Dim resultado As Double
resultado = numero Mod 2
Select Case resultado
Case Is = 0
ParoImpar = "ES PAR"
Case Is > 0
ParoImpar = "ES IMPAR"
End Select

End Function

una función en BVA que nos da recomendaciones sobre llevar una vida ordenada en función de tu edad

Public Function Edad(a As Integer) As String

Dim b

'EdadInput = InputBox("Ingresa tu edad")
Select Case a
    Case Is > 32
        Edad = "Eres Mayor que yo "
    Case Is = 32
        Edad = "Tenemos la misma edad "
    Case Is < 32
        Edad = "Eres Menor que yo "
End Select
a = MsgBox(Edad, , "Edad")

End Function

Para saber si un número es par o impar:

Public Function PARIMPAR(num As Integer) As String

Dim residuo As Integer

residuo = num Mod 2

Select Case residuo
    Case Is = 0
        PARIMPAR = "Par"
        
    Case Is <> 0
        PARIMPAR = "Impar"

End Select

End Function

😃

Se me ocurrió generar condicionales a este programa de cálculo de prestaciones sociales. Valida salario integral y bonificación en caso de que el empleado trabaje el año completo.

Increible es muy funcional

Public Sub JornadaLaboral()

Dim Jornada_Laboral As Double
Dim Value

Jornada_Laboral = InputBox("Por favor, ingrese el total de horas promedio por semana que usted trabaja", "Jornada Laboral")

Select Case Jornada_Laboral
    Case Is > 48
        Value = MsgBox("Por favor, verifique que le estén pagando sus horas extras y recargos. Su total fue de " & Jornada_Laboral & " horas. Número mayor al que permite la Ley", , "Jornada Laboral")
    Case Is = 48
        Value = MsgBox("Su total de horas es de " & Jornada_Laboral & " . Usted trabaja las horas que por Ley son las establecidas", , "Jornada Laboral")
    Case Else
        Value = MsgBox("Usted solo trabaja " & Jornada_Laboral & " horas." & " En este caso es probable que su jornada laboral pactada sea diferente a la establecida por Ley ", , "Jornada Laboral")
        
End Select

End Sub

Le sufrí un poquito, hice un caso similar pero con string. Importante usar las " " en strings.

La verdad no veo en qué caso aplicar esto, ni en qué tipo de trabajo, pero igual me encanta el curso!!

Yo lo hice para determinar si un estudiante aprueba, reprueba o tiene que hacer examenes extras tomando en cuenta sus calificaciones.

Public Function paridad(A As Integer) As String

    Dim prueba As Integer
    prueba = A Mod 2
    
    
    Select Case prueba = 0
        Case True
            paridad = "Es par"
        Case False
            paridad = "Es impar"
    End Select

End Function