Macros-commandes VBA/Exercices/Multiplication
Apparence
Multiplication de colonnes EXCEL
[modifier | modifier le wikicode]Nous nous proposons d'effectuer un exercice simple pour mettre en pratique vos connaissances en termes de macros et ainsi automatiser certaines tâches. Dans le cas présent, il s'agit juste d'une multiplication "bizarre" entre deux colonnes EXCEL.
Exemple
Voici l'énoncé :
- Créer un classeur EXCEL supportant les macros vba nommé "Multiplication Bizarre.xlsm"
- Créer un tableau sur une feuille de classeur que vous nommerez "Notes" comprenant 5 colonnes et 11 lignes
- Remplir manuellement la première ligne entête avec les libellés suivants : Noms, Matières, Notes, Coefficients, Résultats
- Remplir manuellement la colonne A des lignes 2 à 11 avec une valeur choisi parmi les noms "tata", "tete", "titi", "toto", "tutu"
- Remplir manuellement la colonne B des lignes 2 à 11 avec une valeur choisi parmi les noms "informatique", "statistique", "logistique" (en évitant les doublons)
- Remplir manuellement la colonne C des lignes 2 à 11 avec une note variant de 0 à 20 (valeurs entières)
- Remplir manuellement la colonne D des lignes 2 à 11 avec un coefficient variant de 2 à 4 (valeurs entières)
- Remplir automatiquement grâce à une macro "ProduitBizarre" la colonne E par le calcul bizarre suivant :
- Si la note est inférieure à 5 ==> le résultat de la multiplication de C+3 par D
- Si la note est comprise entre 5 et 9 ==> le résultat de la multiplication de C par D+1
- Si la note est comprise entre 10 et 14 ==> le résultat de la multiplication de C par D-1
- Si la note est supérieure à 15 ==> le résultat de la multiplication de C-3 par D
Solution
- Après avoir rempli manuellement les 4 premières colonnes sous EXCEL, nous réalisons ici une macro qui permet d’obtenir le résultat demandé. Pour ce faire, il faut créer cette macro via l'onglet Développeur, sélectionner le bouton Visual Basic et écrire le code VBA suivant :
' débute la macro qui effectue une multiplication bizarre
Sub ProduitBizarre()
' déclare une variable entière permettant de récupérer les notes brutes
Dim note As Integer
' déclare une variable entière permettant de récupérer les coefficients
Dim coef As Integer
' déclare une variable entière permettant le calcul effectif des résultats
Dim resultat As Integer
' commence la boucle for qui va balayer les lignes de 2 à 11
For ligne = 2 To 11
' récupère et stocke la note ligne par ligne
note = Range("C" & ligne)
' récupère et stocke le coefficient ligne par ligne
coef = Range("D" & ligne)
' calcule le produit demandé des colonnes C et D puis le rance en cellule E
If note < 5 Then
resultat = (note + 3) * (coef)
ElseIf note < 10 Then
resultat = (note) * (coef + 1)
ElseIf note < 15 Then
resultat = (note) * (coef - 1)
Else
resultat = (note - 3) * (coef)
End If
' affiche le resultat dans la cellule de la colonne E
Range("E" & ligne) = resultat
' se positionne sur la ligne suivante
Next ligne
' ferme la macro
End Sub
- Ce code VBA parcourt successivement les lignes 2 à 11 (For ligne = 2 To 11) et sur chaque ligne insère en colonne E le résultat de ce calcul bizarre
- Pour exécuter la macro, il nous suffit d’effacer les résultats de la colonne E, de retourner dans l'onglet DÉVELOPPEUR Macros, une fenêtre répertoriant toutes les macros du classeur doit s’ouvrir sous la forme ci-dessous, une fois cette fenêtre affichée, sélectionner la macro ProduitBizarre et l'exécuter :