Enregistreur de macros et références relatives / absolues

Bonjour à tous,

Si vous utilisez l’enregistreur de macros et que vous cliquez sur une cellule, en VBA, cela se traduit par :

Sub Références_absolues()
' Macro enregistrée le 13/05/2008 par TL pour Excel-pratique
    ActiveCell.FormulaR1C1 = "Cellule 1"
    Range("F24").Select
    ActiveCell.FormulaR1C1 = "Cellule 2"
End Sub

Explication de la macro :

La cellule active = « Cellule 1 »

Selection de F24 qui devient la cellule active

La cellule active (F24) = « Cellule 2 »

Excel enregistre donc la macro en référence absolue. Cela signifie que F24 contiendra TOUJOURS « cellule 2 », ou que vous vous placiez.

Maintenant si vous regardez bien, lorsque vous enregistrez une macro, vous avez une petite barre de commandes qui apparaît avec le carré d’arrêt d’enregistrement et un carré blanc, représentant une page Excel.

Excel

Si vous cliquez sur ce bouton blanc, vous indiquez à Excel d’enregistrer en Référence relative et non plus en absolue comme au-dessus.

La même macro devient alors :

Sub Références_relatives()
' Macro enregistrée le 13/05/2008 par TL pour Excel-pratique
    ActiveCell.FormulaR1C1 = "Cellule 1"
    ActiveCell.Offset(1, 0).Range("A1").Select
    ActiveCell.FormulaR1C1 = "Cellule 2"
End Sub

Dans ce cas, vous indiquez à Excel qu’il faut mettre « cellule 2 » juste en dessous de « cellule 1 » ou que vous vous placiez.

Explication de la macro :

La cellule active = « Cellule 1 »

Se placer sur la cellule juste en dessous (devient la cellule active)

La cellule active = « Cellule 2 »

J'espère que j'ai été clair. Si ce n'est pas le cas, prévenez moi.

Souri84

Rechercher des sujets similaires à "enregistreur macros references relatives absolues"