Introducción
Select Case nos permite establecer condiciones de una naturaleza determinada que uno o más datos pueden cumplir. De acuerdo al caso que cumplan, el macro enviará un mensaje, asignará un valor, ejecutará un proceso, etc. La diferencia básica entre "Select Case" e "If,then,else" radica en que el primero puede trabajar con varios casos, mientras que el segundo solo puede trabajar con dos (una condición y el "resto")
Un caso muy interesante y útil es la aplicación de "Select Case" para identificar la tasa tributaria que se debe pagar sobre los ingresos anuales de una persona. En países como Estados Unidos, este regimen es progresivo; es decir, a mayores ingresos anuales, mayor será la proporción que se pagará en forma de ingresos. A continuación, utilizaré Select Case para crear una calculadora con VBA en Excel y obtener la tasa impositiva correspondiente a un determinado nivel de ingresos anual EEUU. Las tasas y brechas de ingresos consideradas en el ejemplo están basadas en las leyes del gobierno federal vigentes en el 2011.
El código
Creamos el Macro con el nombre deseado y declaramos la variable IngresoAnual como variant. No podemos declarla como Integer debido a que el margen superior de ingresos es demasiado alto.
A continuación, creamos el siguiente message box en VBA: IngresoAnual = InputBox("Ingreso anual en dólares")
Esto nos permitirá escribir nuestro ingreso anual y otorgarle valor a la variable.
Luego creamos Select Case IngresoAnual para establecer los intervalos de ingreso (condiciones o casos) bajo los cuales ofreceremos una determinada tasa de impuestos a través de un message box. Asimismo, le pediremos a excel que escriba el resultado en la primera celda de la Hoja 1.
(Para una mayor visualización de la imagen, hacer click en la misma)
Si el ingreso anual es de 3423 dólares, obtendríamos el siguiente message box
Nota
Se adjunta el ejemplo en un documento excel. Para hacer la aplicación más interactiva, se añadió un botón en la Hoja 1, el cual ejecuta el macro. Además, se hace una pequeña aplicación de "If,then,else" al final del código para calcular la cantidad total a pagar en forma de impuestos, lo cual hace a la calculadora más interesante.
Aplicacion de Select Case para sistema de impuestos progresivo
___________
Elaborado por: Gonzalo Irujo Palacios