Vidéo: Excel VBA: Comment calculer la Valeur Absolue en VBA avec la fonction ABS - Docteur Excel 2025
Le mode d'enregistrement par défaut d'Excel est la référence absolue. Lorsqu'une référence de cellule dans une formule est une référence absolue , elle ne s'ajuste pas automatiquement lorsque la formule est collée dans un nouvel emplacement.
La meilleure façon de comprendre comment ce concept s'applique aux macros est de l'essayer. Enregistrer une macro qui compte les lignes dans une feuille de calcul. (Voir la figure pour un exemple.)
Vous pouvez trouver l'exemple de jeu de données utilisé ici en ligne.
Procédez comme suit pour enregistrer la macro:
-
Assurez-vous que la cellule A1 est sélectionnée.
-
Dans l'onglet Développeur, sélectionnez Enregistrer une macro.
-
Nommez la macro AddTotal.
-
Choisissez ce classeur pour l'emplacement de sauvegarde.
-
Cliquez sur OK pour commencer l'enregistrement.
À ce stade, Excel enregistre vos actions.
-
Pendant l'enregistrement d'Excel, sélectionnez la cellule A16 et tapez Total dans la cellule.
-
Sélectionnez la première cellule vide dans la colonne D (D16) et tapez = COUNTA (D2: D15).
Cette formule donne le nombre de branches au bas de la colonne D. Vous utilisez la fonction COUNTA car les numéros de branches sont stockés sous forme de texte.
-
Cliquez sur Arrêter l'enregistrement dans l'onglet Développeur pour arrêter l'enregistrement de la macro.
Votre feuille de travail post-totalisée.
La feuille de calcul formatée devrait ressembler à celle montrée ici.
Pour voir votre macro en action, supprimez la ligne Total que vous venez d'ajouter et lisez votre macro en procédant comme suit:
-
Dans l'onglet Développeur, sélectionnez Macros.
-
Recherchez et sélectionnez la macro AddTotal que vous venez d'enregistrer.
-
Cliquez sur le bouton Exécuter.
Si tout se passe bien, la macro joue vos actions sur un T et donne un total à votre table. Maintenant, voici la chose. Peu importe comment vous essayez, vous ne pouvez pas faire fonctionner la macro AddTotal sur la deuxième table. Pourquoi? Parce que vous l'avez enregistré comme une macro absolue.
Pour comprendre ce que cela signifie, examinez le code sous-jacent en sélectionnant Macros dans l'onglet Développeur. La boîte de dialogue Macro apparaît.
Sélectionnez la macro AddTotal et cliquez sur le bouton Modifier. Visual Basic Editor s'ouvre et affiche le code qui a été écrit lorsque vous avez enregistré votre macro:
Sub AddTotal () Range ("A16"). Sélectionnez ActiveCell. FormulaR1C1 = "Total" Range ("D16"). Sélectionnez ActiveCell. FormulaR1C1 = "= COUNTA (R [-14] C: R [-1] C)" End Sub
Portez une attention particulière aux deux lignes de code qui sélectionnent la plage A16 et la plage D16. Étant donné que la macro a été enregistrée en mode de référence absolue, Excel a interprété votre sélection de plage comme des références de cellule absolues. En d'autres termes, quel que soit l'emplacement de votre curseur dans votre classeur, lorsque vous exécutez la macro enregistrée, Excel sélectionne la cellule A16 puis la cellule D16.Dans la section suivante, vous regardez à quoi ressemble la même macro lorsqu'elle est enregistrée en mode de référence relative.
