David se demande s’il existe un moyen pour les références de cellule dans une macro de changer lors de l’ajout ou de la suppression de lignes, de la même manière qu’une formule répond à de tels changements?

Lorsque vous référencez une cellule dans une macro, par exemple en utilisant Range (« B6 »), VBA traite cette référence comme absolue, ce qui signifie qu’elle ne change pas.

Même si vous ajoutez ou supprimez des cellules qui affectent l’emplacement des informations contenues dans B6, la référence de macro restera la même.

La solution consiste à ne pas utiliser de références directes aux cellules dans vos macros. Au lieu de cela, comptez sur des plages nommées. Dans Excel, définissez un nom pour la cellule B6 (tel que «MyData»), puis utilisez ce nom dans la référence de votre macro, comme dans Range («MyData»). Cette approche fonctionne car VBA recherche le nom afin de déterminer quelle cellule est référencée et Excel s’assure que les références de plage nommées restent à jour lorsque vous ajoutez ou supprimez des cellules.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (7250) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:

link: / excelribbon-Changing_Macro_Cell_References_Based_on_Edits [Modification des références de macro-cellules en fonction des modifications].