En está aplicación el Select Case puede ser utilizado para el cálculo de beneficios que una municipalidad por ejemplo, otorga a los buenos pagadores de autovalúo al final del año.
Supongamos que una política de incentivo de una municipalidad, es que al final del año otorgue a los vecinos descuentos en el pago de su cuota final de autovalúo , de acuerdo al número de meses que este pago puntualmente durante el año.
En nuestro ejemplo, hemos considerado que los incentivos serán un porcentaje del pago de la cuota N° 12 (cuota en el mes de diciembre).
- Un primer caso, es que el vecino 1 pago entre 1 a 4 meses puntualmente, por lo que su descuento de pago será un 10% de su cuota N°12.
- El segundo caso, es que el vecino 1 pago entre 5 a 8 meses puntualmente, por lo que su descuento de pago será un 20% de su cuota N°12.
- Por último, el tercer caso es que el vecino 1 pago entre 9 a 11 meses puntualmente, por lo que su descuento de pago será un 30% de su cuota N°12.
En nuestro cuadro, se puede apreciar que por ejemplo nuestro Municipio es conformado por 7 vecinos, los cuales pagan un autoevalúo distinto y tienen un número de meses que pagaron puntualmente.
Cuadro N° 1
(Para mayor visualización de la imagen, hacer click en la misma)
Con dichos datos, nuestra macro calculará los descuentos de pago y el pago de autoevalúo en función a los incentivos establecidos anteriormente. A continuación se muestra como nuestra función con Select Case:
Sub Pago()
n = Cells(Rows.Count, 1).End(xlUp).Row
For x = 1 To n - 6
Tiempo = Cells(6 + x, 3).Value
Select Case Tiempo
Case 1 To 4
Cells(6 + x, 4).Value = Cells(6 + x, 2).Value * 0.1
Case 5 To 8
Cells(6 + x, 4).Value = Cells(6 + x, 2).Value * 0.2
Case 9 To 11
Cells(6 + x, 4).Value = Cells(6 + x, 2).Value * 0.3
End Select
Cells(6 + x, 5).Value = Cells(6 + x, 2).Value - Cells(6 + x, 4).Value
Next
End Sub
Cabe resaltar, que si bien nuestro ejemplo considera solo a 7 vecinos, nuestra municipalidad puede contar con una cantidad mucho mayor; por lo que en la programación del VBA no hemos limitado el número de celdas que puedan contener datos. Para ello, hemos definido un valor "n" como "n = Cells(Rows.Count, 1).End(xlUp).Row" con la finalidad de que nos halle el número total de celdas que contienen información en nuestra hoja de datos. Con ello, podemos definir mediante la función For que nuestra macro se aplique desde la celda 7 ( que en nuestro ejemplo es el que contiene el primer dato) hasta la última celda con información.
En el cuadro N° 2 se muestran los resultados de descuento y pago de cuota, una vez que hemos aplicado nuestra macro Select Case:
Cuadro N°2
(Para mayor visualización de la imagen, hacer click en la misma)
Para mayor análisis se adjunta el excel con el aplicativo en Select Case:
Select Case a beneficios por buen pagador
Elaborado por: Ericka Ramirez