Billets et pièces dans Excel VBA - Macros Excel faciles

Table des matières

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

Situation:

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

1. Ouvrez l'éditeur Visual Basic.

2. Double-cliquez sur Sheet1 (Sheet1) dans l'explorateur de projet.

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

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

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

Montant faible en tant que double, i en tant qu'entier

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

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

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

 montant = Plage("B2").Valeur

7. Nous vidons la gamme avec les fréquences.

Plage("B5:B16").Valeur = ""

8. Il est maintenant temps de diviser le montant d'argent saisi. Nous commençons une boucle For Next.

Pour i = 5 à 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 montant >= Cells(i, 1).Valeur
Boucle

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

Cellules(i, 2).Valeur = Cellules(i, 2).Valeur + 1
montant = montant - Cells(i, 1).Valeur

Explication : tant que le montant est supérieur ou égal à Cells(i,1).value, le montant contient des billets/pièces de cette valeur. Par conséquent, Excel VBA incrémente 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 le montant devienne inférieur à Cells(i,1).value. Ensuite, Excel VBA incrémente i et passe à la prochaine facture/pièce pour voir combien de fois cette facture/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 n'y ait plus d'argent à diviser.

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

 Ensuite je
Fin si

12. Testez le programme.

Résultat:

Remarque : bien entendu, le montant saisi ne contient pas nécessairement tous les billets/pièces. Si le montant ne contient pas un certain billet/pièce, la partie après Do While ne devient jamais vraie pour ce billet/pièce et Excel VBA passe directement au billet/pièce suivant.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave