Factures et pièces dans Excel VBA
Ci-dessous, nous examinerons un programme dans Excel VBA qui divise une somme d’argent en billets et pièces de monnaie.
Situation:
Créer une feuille de calcul Modifier l’événement. Code ajouté à la feuille de changement d’événement sera exécuté par Excel VBA lorsque vous modifiez une cellule sur une feuille de calcul.
-
Ouvrez le Visual Basic Editor.
-
Double-cliquez sur Sheet1 (Sheet1) dans le projet Explorer.
-
Choisissez la feuille de travail dans la liste déroulante de gauche. Choisissez le changement de la droite liste déroulante.
Ajoutez les lignes de code suivantes à la feuille de travail Modifier l’événement:
-
Déclare une variable quantité de type double et une variable i de type entier.
Dim amount As Double, i As Integer
-
La feuille de changement d’événement écoute tous les changements sur Sheet1. Nous voulons seulement Excel VBA pour faire quelque chose si quelque chose change dans la cellule B2. Pour ce faire, ajoutez la ligne de code suivant:
If Target.Address = "$B$2" Then
-
Nous initialisons la quantité variable avec la valeur de la cellule B2.
amount = Range("B2").Value
-
Nous vidons la gamme avec les fréquences.
Range("B5:B16").Value = ""
-
Maintenant, il est temps de diviser le montant saisi d’argent. Nous commençons une boucle For Next.
For i = 5 To 16
-
Nous allons utiliser la structure de boucle Do While. Le code placé entre ces mots sera répété aussi longtemps que la partie après Do While est vrai. Nous voulons Excel VBA répéter les lignes de code à l’étape 10 tant que le montant est supérieur ou égal à cellules (i, 1) .value.
Do While amount >= Cells(i, 1).Value Loop
-
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 quantité est supérieure ou égale à cellules (i, 1) .value, le montant des factures / contient des pièces de monnaie de cette valeur. Par conséquent, incrémente Excel VBA la fréquence de ce projet de loi / pièce (première ligne) et soustrait la valeur de la masse / pièce de montant (deuxième ligne). Ce processus sera répété jusqu’à ce que la somme est inférieure à celle des cellules (i, 1) .value. Ensuite, par incréments Excel VBA i et va à la prochaine facture / pièce pour voir combien de fois ce projet de loi / ajustements de pièces de monnaie dans le montant gauche. De cette façon, le montant d’argent sera divisé en billets et les pièces jusqu’à ce qu’il n’y a pas d’argent pour diviser plus.
-
Fermer la boucle For Next et ne pas oublier de fermer l’instruction if (à la fois en dehors de la boucle Do While).
Next i End if
-
Tester le programme.
Résultat:
Note: bien sûr le montant saisi ne contient pas nécessairement toutes les factures / pièce. Si le montant ne contient pas un certain projet de loi / pièce, la pièce après Do While ne devient vrai pour ce projet de loi / pièce et Excel VBA va directement à la prochaine facture / pièce.