/ / Fatture e monete in VBA di Excel

Fatture e monete in Excel VBA

Di seguito vedremo un programma in Excel VBA che divide una somma di denaro in banconote e monete.

Situazione:

Fatture e monete in Excel VBA

Creare un evento di modifica del foglio di lavoro. Il codice aggiunto all'Evento di modifica del foglio di lavoro verrà eseguito da VBA di Excel quando si modifica una cella in un foglio di lavoro.

1. Aprire il Visual Basic Editor.

2. Fare doppio clic su Sheet1 (Sheet1) in Project Explorer.

3. Seleziona Foglio di lavoro dall'elenco a discesa a sinistra. Scegli Cambia dall'elenco a discesa a destra.

Evento di modifica del foglio di lavoro in VBA di Excel

Aggiungere le seguenti righe di codice all'evento di modifica del foglio di lavoro:

4. Dichiarare una variabile denominata quantità di tipo Double e una variabile i di tipo Integer.

Dim amount As Double, i As Integer

5. L'Evento di modifica del foglio di lavoro ascolta tutte le modifiche su Sheet1. Vogliamo che Excel VBA faccia qualcosa solo se qualcosa cambia nella cella B2. Per ottenere ciò, aggiungi la seguente riga di codice:

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

6. Inizializziamo l'importo variabile con il valore della cella B2.

amount = Range("B2").Value

7. Svuotiamo la gamma con le frequenze.

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

8. Ora è il momento di dividere la quantità di denaro inserita. Iniziamo un ciclo For Next.

For i = 5 To 16

9. Faremo uso della struttura Do While Loop. Il codice inserito tra queste parole verrà ripetuto finché la parte dopo Do While è vera. VBA di Excel per ripetere le righe di codice nel passaggio 10 purché la quantità sia maggiore o uguale a Cells (i, 1) .value.

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

Loop

10. Aggiungi le seguenti linee di codice al ciclo Do While.

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

Spiegazione: finché l'importo è maggiore o uguale a Celle (i, 1). valore, l'importo contiene banconote / monete di questo valore. Di conseguenza, VBA di Excel incrementa la frequenza di questo conto / moneta (prima riga) e sottrae il valore del conto / moneta dall'importo (seconda riga). Questo processo verrà ripetuto fino a quando la quantità diventa inferiore a Cells (i, 1) .value. Successivamente, Excel VBA incrementa i e passa alla prossima fattura / moneta per vedere quante volte questa banconota / moneta si adatta alla quantità rimanente. In questo modo la somma di denaro sarà divisa in banconote e monete fino a quando non ci sarà più denaro da dividere.

11. Chiudi il ciclo For Next e non dimenticare di chiudere l'istruzione if (entrambi all'esterno del ciclo Do While).

   Next i
End if

12. Testare il programma.

Risultato:

Risultato di banconote e monete

Nota: ovviamente l'importo inserito non contiene necessariamente ogni fattura / moneta. Se la quantità non contiene una fattura / moneta certa, la parte dopo la funzione Do While non diventa mai vera per questa bolletta / moneta e VBA di Excel passa direttamente alla bolletta / moneta successiva.

Leggi anche: