Banconote e monete in Excel VBA - Macro facili di Excel

Sommario

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

Situazione:

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

1. Aprire l'editor di Visual Basic.

2. Fare doppio clic su Foglio1 (Foglio1) in Esplora progetti.

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

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

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

Dim importo As Double, i As Integer

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

Se Target.Address = "$B$2" Allora

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

 importo = Intervallo ("B2"). Valore

7. Svuotiamo la gamma con le frequenze.

Intervallo ("B5: B16"). Valore = ""

8. Ora è il momento di dividere l'importo inserito. Avviamo un ciclo For Next.

Per i = da 5 a 16

9. Utilizzeremo la struttura Do While Loop. Il codice inserito tra queste parole verrà ripetuto finché la parte dopo Do While è vera. Vogliamo che Excel VBA ripeta le righe di codice al passaggio 10 purché la quantità sia maggiore o uguale a Cells(i,1).value.

Esegui mentre importo >= Celle (i, 1). Valore
Ciclo continuo

10. Aggiungere le seguenti righe di codice al ciclo Do While.

Celle(i, 2).Valore = Celle(i, 2).Valore + 1
importo = importo - Celle(i, 1).Valore

Spiegazione: finché l'importo è maggiore o uguale a Cells(i,1).value, l'importo contiene banconote/monete di questo valore. Di conseguenza, Excel VBA incrementa la frequenza di questa banconota/moneta (prima riga) e sottrae il valore della banconota/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 fattura/moneta successiva per vedere quante volte questa banconota/moneta si adatta all'importo rimasto. In questo modo la quantità di denaro verrà suddivisa in banconote e monete fino a quando non ci saranno più soldi da dividere.

11. Chiudere il ciclo For Next e non dimenticare di chiudere l'istruzione if (entrambe al di fuori del ciclo Do While).

 Avanti io
Finisci se

12. Testare il programma.

Risultato:

Nota: ovviamente l'importo inserito non contiene necessariamente ogni banconota/moneta. Se l'importo non contiene una certa banconota/moneta, la parte dopo Do While non diventa mai vera per questa banconota/moneta e Excel VBA va direttamente alla banconota/moneta successiva.

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave