Lire le contenu d'une macro
Noter ce cours :
Ce tutoriel est la suite du tutoriel de création de macro et va constituer à lire et interpréter le code généré par la première macro consistant en une multiplication des colonnes A et B (dont le résultat était placé dans la colonne C).
Pour accéder à votre macro créée dans le tutoriel précédent, cliquez sur le menu Outils => Macros => Macro. Vous arrivez devant cette fenêtre :
Sélectionnez la macro que vous avez créée précédemment (ici il s'agit de la macro Multiplication) puis cliquez sur le bouton Pas à pas détaillé. Cette fenêtre s'affiche :
Voici le script généré automatiquement par Excel :
Sub Multiplication()
'
' Multiplication Macro
' Macro enregistrée le 02/09/2007 par Jean-Marc Poitras
'
'
Range("C2").Select
ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
Range("C2").Select
Selection.AutoFill Destination:=Range("C2:C16"), Type:=xlFillDefault
Range("C2:C16").Select
Range("A2").Select
End Sub
Voici maintenant les explications du code détaillées :
- Sub Multiplication() => Nom de la macro
- Macro enregistrée le 02/09/2007 par Jean-Marc Poitras => Macro enregistrée par qui et à quelle date.
- Range("C2").Select => Au début de la macro, nous avions demandé de se positionner dans la cellule C2 pour faire la première multiplication. Cela correspond au terme Range("C2").Select.
- ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]" => La formule "=RC[-2]*RC[-1]" veut dire : R1C1 = La cellule C2 sélectionnée du début (qui est égale à la la cellule A2 représentée par =RC[-2] ), (la cellule C2 moins 2 qui représente la cellule A2) multipliée par la cellule B2 * RC[-1] (La cellule C2 moins 1 qui représente la cellule B2).
- Range("C2").Select => Nous devons nous repositionner sur la cellule C2. Le code a été généré automatiquement par Excel mais celui-ci est inutile et redondant. Vous pouvez le supprimer sans affecter le bon fonctionnement du code.
- Selection.AutoFill Destination:=Range("C2:C16"), Type:=xlFillDefault => Nous glissons la formule de C2 à C16 sur la grille de la feuille Excel.
- Range("C2:C16").Select => Une fois avoir glissé la formule de la cellule C2 à C16, les cellules C2 à C16 sont sélectionées par défaut (Cellules grisées). Cette ligne est inutile et prend de la place, elle peut être supprimée sans affecter le bon fonctionnement du code.
- Range("A2").Select = Revenir à la cellule A2 une fois la procédure de la macro terminée.
Notez que le script généré automatiquement par Excel sera toujours moins bien optimisé que si vous programmez proprement vous-même vos macros en VBA (Visual Basic for Applications, langage utilisé pour créer les macros sous Microsoft Office). C’est pour cette raison que j'ai identifié les endroits ou le code est en superflu et que vous pouvez supprimer.