Billetes y monedas en Excel VBA - Macros fáciles de Excel

Tabla de contenido

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

Situación:

Cree un evento de cambio de hoja de trabajo. Excel VBA ejecutará el código agregado al evento de cambio de la hoja de trabajo 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 Hoja de trabajo en la lista desplegable de la izquierda. Elija Cambiar en la lista desplegable de la derecha.

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

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

Cantidad de atenuación como doble, i como entero

5. El evento de cambio de hoja de trabajo escucha todos los cambios en Sheet1. 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:

Si Target.Address = "$ B $ 2", entonces

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

 cantidad = Rango ("B2"). Valor

7. Vaciamos el rango con las frecuencias.

Rango ("B5: B16"). Valor = ""

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

Para i = 5 a 16

9. Usaremos 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 a Cells (i, 1) .value.

Hacer mientras cantidad> = Celdas (i, 1).
Lazo

10. Agregue las siguientes líneas de código al bucle Do While.

Celdas (i, 2) .Valor = Celdas (i, 2) .Valor + 1
cantidad = cantidad - Celdas (i, 1) .Valor

Explicación: siempre que el monto sea mayor o igual al valor de las celdas (i, 1), el monto 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 menor que Cells (i, 1) .value. A continuación, Excel VBA incrementa i y pasa al siguiente billete / moneda para ver cuántas veces este billete / moneda cabe en la cantidad restante. De esta manera, la cantidad de dinero se dividirá en billetes y monedas hasta que ya no quede dinero para dividir.

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

 Siguiente yo
Terminara si

12. Pruebe el programa.

Resultado:

Nota: por supuesto, la cantidad ingresada no necesariamente contiene todos los billetes / monedas. Si la cantidad no contiene un determinado billete / moneda, la parte posterior a Do While nunca se vuelve verdadera para este billete / moneda y Excel VBA pasa directamente al siguiente billete / moneda.

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave