Código VBA: La instrucción SELECT CASE

La estructura SELECT CASE… END SELECT, ejecuta uno de entre varios grupos de instrucciones según el valor de una expresión. Normalmente se emplea para procedimiento más o menos complejos en los que de usar la función IF… ELSE IF emplearíamos más líneas de código.  Para explicar el funcionamiento de esta instrucción vamos a presentar un ejemplo sencillo en el que sombrearemos unas celdas y el color dependerá del valor de dicha celda.

Para este ejemplo vamos a partir de que tenemos una serie de cantidades facturadas a varios clientes y queremos crear un código que nos distinga la «calidad» de este cliente atendiendo a su volumen. Aunque esto lo podríamos crear muy facilmente con la herramienta de formato condicional, vamos a emplear el código VBA y luego lo completaremos. Lo primero que haremos, como siempre, será crear y darle un nombre al procedimiento que vamos a crear en un módulo.

case1

También vamos a declarar dos variables: Límite1 y Límite2 (no hace falta que las definamos con el comando Dim, aunque sí queremos lo podríamos hacer). Además diremos que estas dos variables toman valores de 100.000 y 40.000.

case2

Seguidamente, introduciremos la insctrucción SELECT CASE, seguidas de la expresión de prueba que será el valor de las celdas que en el momento de ejecutar la macro se encuentren seleccionadas, es decir, escribiremos «SELECT CASE Selection.value«. Como comentabamos al principio de estas líneas, la instrucción SELECT CASE nos ahorra escribir código pues nos evita que tengamos que escribir la expresión de prueba para cada una de las condiciones.

Vamos a establecer que si la celda seleccionada es superior al límite 1 el valor lo escriba en verde, si está entre el límte 1 y 2 el valor esté escrito en azul y pare el resto, lo escriba en rojo. La estructura de nuestro código será como sigue:

 

case3

Para elegir otra combinación de colores (RGB es la combinación de rojo-verde-azul, donde el valor mínimo es cero y el máximo 255), podremos utilizar el grabador de macros para averiguar que valor RGB tiene. Para completar este código y hacerlo más útil vamos a decirle que en la celda contigua y dependiendo en que límite se encuentre el valor de la celda, multiplique este valor por un porcentaje (útil si queremos aplicar descuentos por volumen de facturación). Si los tipos de decuentos son del 5% ; 2,50% y 0%, el código nos quedará así:

case4

Más adelante veremos como arrastar el código para que nos lo aplique hasta el final de una columna y no tener que ejecutarlo para cada valor, de momento este será el resultado que nos quedará en nuestra hoja de cálculo:

 

case5


Descubre más desde Asiento descuadrado

Suscríbete y recibe las últimas entradas en tu correo electrónico.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *