/ / Billets et pièces de monnaie dans Excel VBA

Billets et pièces de monnaie dans Excel VBA

Ci-dessous, nous examinerons un programme en Excel VBA qui divise une somme d'argent en billets et pièces.

Situation:

Billets et pièces de monnaie dans Excel VBA

Créez un événement de changement de feuille de calcul. Le code ajouté à l'événement Modification de la feuille de calcul sera exécuté par Excel VBA lorsque vous modifiez une cellule dans une feuille de calcul.

1. Ouvrez Visual Basic Editor.

2. Double-cliquez sur Sheet1 (Sheet1) dans l'Explorateur de projets.

3. Choisissez Feuille de travail dans la liste déroulante de gauche. Choisissez Modifier dans la liste déroulante de droite.

Événement de changement de feuille de calcul dans Excel VBA

Ajoutez les lignes de code suivantes à l'événement de changement de feuille de calcul:

4. Déclarez une variable appelée quantité de type Double et une variable i de type Integer.

Dim amount As Double, i As Integer

5. L'événement de changement de feuille de calcul écoute toutes les modifications de la feuille Sheet1. Nous voulons seulement qu'Excel VBA agisse si quelque chose change dans la cellule B2. Pour ce faire, ajoutez la ligne de code suivante:

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

6. On initialise le montant variable avec la valeur de la cellule B2.

amount = Range("B2").Value

7. On vide la plage avec les fréquences.

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

8. Maintenant, il est temps de fractionner le montant entré. Nous commençons une boucle For Next.

For i = 5 To 16

9 Nous utiliserons la structure Do While Loop. Le code placé entre ces mots sera répété tant que la partie après Do While est vraie. Nous voulons qu'Excel VBA répète les lignes de code à l'étape 10 tant que le montant est supérieur ou égal à Cells (i, 1) .value.

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

Loop

10. Ajoutez les lignes de code suivantes à la boucle Do While.

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

Explication: tant que le montant est supérieur ou égal à Cells (i, 1) .value, le montant contient des billets / pièces de cette valeur. En conséquence, Excel VBA augmente la fréquence de cette facture / pièce (première ligne) et soustrait la valeur de la facture / pièce du montant (deuxième ligne). Ce processus sera répété jusqu'à ce que la quantité soit plus petite que la valeur (i, 1). Ensuite, Excel VBA incrémente i et passe à la prochaine facture / pièce de monnaie pour voir combien de fois cette facture / cette pièce correspond au montant restant. De cette façon, le montant d'argent sera divisé en billets et en pièces jusqu'à ce qu'il ne reste plus d'argent à diviser.

11. Fermez la boucle For Next et n’oubliez pas de fermer l’instruction if (les deux en dehors de la boucle Do While).

   Next i
End if

12. Testez le programme.

Résultat:

Bills and Coins Résultat

Remarque: Bien sûr, le montant entré ne contient pas nécessairement chaque billet / pièce. Si le montant ne contient pas une certaine facture / pièce, la partie après Do While ne devient jamais vraie pour cette facture / pièce et Excel VBA passe directement à la facture / pièce suivante.

Lisez aussi: