Enregistrement de macros Excel avec des références relatives

UN référence relative dans une macro Excel moyens par rapport à la cellule active. Donc, soyez prudent avec votre choix de cellule active - à la fois lorsque vous enregistrez la macro de référence relative et lorsque vous l'exécutez.

Tout d'abord, l'échantillon ouverte File.xlsx disponibles en ligne. Ensuite, utilisez les étapes suivantes pour enregistrer une macro de référence relative:

  1. Sur l'onglet Développeur, sélectionnez l'option Utiliser les références relatives.

    Enregistrement d'une macro avec 173 références relatives & #.
    Enregistrement d'une macro avec rapport # 173 références.
  2. Assurez-vous que la cellule A1 est sélectionnée.

  3. Sur l'onglet Développeur, sélectionnez Enregistrer une macro.

  4. Nommez la macro AddTotalRelative.

  5. Choisissez Ce Cahier d'exercices pour l'emplacement d'enregistrement.

  6. Cliquez sur OK pour lancer l'enregistrement.

  7. Sélectionnez la cellule A16 et le type totale dans la cellule.

  8. Sélectionnez la première cellule vide dans la colonne D (D16) et le type = NBVAL (D2: D15).




  9. Dans l'onglet Développeur, cliquez sur Arrêter l'enregistrement pour arrêter l'enregistrement de la macro.

À ce stade, vous avez enregistré deux macros. Prenez un moment pour examiner le code de votre macro nouvellement créée en sélectionnant Macros sur l'onglet Développeur pour ouvrir la boîte de dialogue Macro. Choisissez la macro AddTotalRelative et cliquez sur Modifier.

Encore une fois, Visual Basic Editor ouvre et vous montre le code qui a été écrit lorsque vous avez enregistré votre macro. Cette fois, votre code ressemble le texte suivant:

Sous AddTotalRelative () ActiveCell.Offset (15, 0) .Range ("A1"). SelectActiveCell.FormulaR1C1 = "Total" ActiveCell.Offset (0, 3) .Range ("A1"). SelectActiveCell.FormulaR1C1 = "= COUNTA (R [-14] C: R [-1] C) "End Sub

Notons d'abord que le code ne contient pas de références à des plages de cellules spécifiques (autres que le point de départ, A1). Notez que dans cette macro, Excel utilise la propriété Décalage de la cellule active. Cette propriété indique le curseur pour déplacer un certain nombre de cellules haut ou le bas et un certain nombre de cellules gauche ou à droite.

Dans ce cas, le code de la propriété Offset indique à Excel à se déplacer vers le bas de 15 rangées et colonnes 0 face à la cellule active (A1). Parce que la macro a été enregistrée en utilisant référence relative, Excel ne sera pas explicitement sélectionner une cellule particulière comme il l'a fait lors de l'enregistrement d'une macro de référence absolue.

Pour voir cette macro dans l'action, supprimer la ligne Total pour les deux tables et de faire ce qui suit:

  1. Sélectionnez la cellule A1.

  2. Sur l'onglet Développeur, sélectionnez Macros.

  3. Recherchez et sélectionnez la macro AddTotalRelative.

  4. Cliquez sur le bouton Exécuter.

  5. Sélectionnez la cellule F1.

  6. Sur l'onglet Développeur, sélectionnez Macros.

  7. Recherchez et sélectionnez la macro AddTotalRelative.

  8. Cliquez sur le bouton Exécuter.

Notez que cette macro, contrairement à votre macro précédente, travaille sur deux ensembles de données. Parce que la macro applique les totaux par rapport à la cellule active, les totaux sont appliqués correctement.

Pour cette macro fonctionne, vous devez simplement vous assurer que

  • Vous avez sélectionné la cellule de départ correct avant d'exécuter la macro.

  • Le bloc de données a le même nombre de lignes et de colonnes que les données sur lesquelles vous avez enregistré la macro.


» » » » Enregistrement de macros Excel avec des références relatives