act-6_VBA : enregistreur macro
Exemple⚓
.
1 Sub FMD_Obs_Classes_Modele() 2 ' 3 ' FMD_Obs_Classes_Modele Macro 4 ' 5 ' Touche de raccourci du clavier: Ctrl+Shift+F 6 ' 7 ActiveCell.FormulaR1C1 = "N à t = 0" 8 Range("A3").Select 9 ActiveCell.FormulaR1C1 = "tdeb" 10 Range("B3").Select 11 ActiveCell.FormulaR1C1 = "tfin" 12 Range("C3").Select 13 ActiveCell.FormulaR1C1 = "tc" 14 Range("D3").Select 15 ActiveCell.FormulaR1C1 = "dt" 16 Range("E3").Select 17 ActiveCell.FormulaR1C1 = "dN(tc)" 18 Range("F3").Select 19 ActiveCell.FormulaR1C1 = "N(tdeb)" 20 Range("G3").Select 21 ActiveCell.FormulaR1C1 = "R(tdeb)" 22 Range("H3").Select 23 ActiveCell.FormulaR1C1 = "La(tc)" 24 Range("C4").Select 25 ActiveCell.FormulaR1C1 = "=RC[-2]+(RC[-1]-RC[-2])/2" 26 Range("D4").Select 27 'Application.CutCopyMode = False 28 ActiveCell.FormulaR1C1 = "=RC[-2]-RC[-3]" 29 Range("F4").Select 30 ActiveCell.FormulaR1C1 = "=R[-3]C[-4]" 31 Range("F5").Select 32 ActiveCell.FormulaR1C1 = "=R[-1]C-R[-1]C[-1]" 33 Range("F5").Select 34 ActiveCell.FormulaR1C1 = "=R[-1]C-R[-1]C[-1]" 35 Range("F5").Select 36 ActiveCell.FormulaR1C1 = "=R[-1]C-R[-1]C[-1]" 37 Range("G4").Select 38 ActiveCell.FormulaR1C1 = "=RC[-1]/R1C[-5]" 39 Range("H4").Select 40 ActiveCell.FormulaR1C1 = "=IF(RC[-3]>0,RC[-3]/RC[-2]/RC[-4],0)" 41 Range("H5").Select 42 End Sub 43 | Le code ci-contre résulte de l'enregistrement macro. Copiez le dans le module Dans la feuille de calcul, activez la cellule A1, puis à l'aide du menu Vous devez constater le résultat ci-dessous |
.
Nouvel enregistrement⚓
Il est intéressant d'ajouter à la macro ci-dessous la recopie de la formule C4 vers le bas :
Menu Développeur.
Enregistrer une macro : nommez la TEST_RECOPIE_BAS
Vous pouvez maintenant enregistrer toutes les opérations que vous souhaitez automatiser par la suite lors de l'appel de la macro.
Cliquer sur C4
Recopier vers le bas jusqu'à la ligne 17 par exemple.
Arrêter l'enregistrement.
Pour tester la nouvelle macro, effacer votre feuille, puis exécutez les deux macros successivement.
Visualisez la nouvelle macro qui à été ajoutée : vous remarquerez l'ajout d'un Module VBA nommé Module1
.
Exemple : Compléter la macro FMD_Obs_Classes_Modele()⚓
Le gros intérêt de l'enregistreur est de découvrir la traduction de nos instructions manuelles en code VBA. Cela permet d'apprendre les fonctions de VBA utiles à la manipulation des différents objets Excel.
Ici, on apprend que la méthode pour recopier des cellules est AutoFill, que son point de départ est la cellule sélectionnée (objet Plage de cellule) et qu'elle va s'appliquer à un objet Plage (Destination) dont la référence est C4 :C17. Type permet de choisir la manière dont le remplissage va se faire.
Pour compléter ce résumé, on peut interroger ChatGPT.