/ / Billetes y monedas en Excel VBA

Billetes y monedas en Excel VBA

A continuación veremos un programa en Excel VBA que divide una cantidad de dinero en billetes y monedas.

Situación:

Billetes y monedas en Excel VBA

Crear un evento de cambio de hoja de trabajo. El código agregado al evento de cambio de la hoja de trabajo será ejecutado por Excel VBA cuando cambie una celda en una hoja de trabajo.

1. Abra el Editor de Visual Basic.

2. Haga doble clic en Sheet1 (Sheet1) en el Explorador de proyectos.

3. Elija la hoja de trabajo de la lista desplegable de la izquierda. Elija Cambiar en la lista desplegable de la derecha.

Evento de cambio de hoja de cálculo en Excel VBA

Agregue las siguientes líneas de código al evento de cambio de hoja de trabajo:

4. Declare una variable llamada cantidad de tipo Double y una variable i de tipo Integer.

Dim amount As Double, i As Integer

5. El evento de cambio de la hoja de trabajo escucha todos los cambios en la Hoja1. Solo queremos que Excel VBA haga algo si algo cambia en la celda B2. Para lograr esto, agregue la siguiente línea de código:

If Target.Address = "$B$2" Then

6. Inicializamos la cantidad variable con el valor de la celda B2.

amount = Range("B2").Value

7. Vaciamos el rango con las frecuencias.

Range("B5:B16").Value = ""

8. Ahora es el momento de dividir la cantidad de dinero ingresada. Comenzamos un bucle For Next.

For i = 5 To 16

9. Haremos uso de la estructura Do While Loop. El código colocado entre estas palabras se repetirá siempre que la parte posterior a Do While sea verdadera. Queremos que Excel VBA repita las líneas de código en el paso 10 siempre que la cantidad sea mayor o igual al valor de Celdas (i, 1).

Do While amount >= Cells(i, 1).Value

Loop

10. Agregue las siguientes líneas de código a Do While Loop.

Cells(i, 2).Value = Cells(i, 2).Value + 1
amount = amount - Cells(i, 1).Value

Explicación: siempre que la cantidad sea mayor o igual a Cells (i, 1) .value, la cantidad contiene billetes / monedas de este valor. Como resultado, Excel VBA incrementa la frecuencia de este billete / moneda (primera línea) y resta el valor del billete / moneda de la cantidad (segunda línea). Este proceso se repetirá hasta que la cantidad sea más pequeña que las Células (i, 1) .valor. A continuación, Excel VBA incrementa i y pasa a la siguiente factura / moneda para ver cuántas veces se ajusta esta factura / moneda en la cantidad restante. De esta manera, la cantidad de dinero se dividirá en billetes y monedas hasta que no haya más dinero para dividir más.

11. Cierre el bucle For Next y no olvide cerrar la instrucción if (ambas fuera del bucle "While").

   Next i
End if

12. Probar el programa.

Resultado:

Resultado de billetes y monedas

Nota: por supuesto, la cantidad ingresada no necesariamente contiene cada billete / moneda. Si la cantidad no contiene una determinada factura / moneda, la parte después de Do While nunca se cumple para esta factura / moneda y Excel VBA va directamente a la siguiente factura / moneda.

Lea también: