Comment utiliser FormulaR1C1 dans VBA (avec exemples)



Vous pouvez utiliser la propriété FormulaR1C1 dans VBA pour créer une référence absolue ou une référence relative à une cellule particulière d’une feuille.

Il existe deux manières courantes d’utiliser cette propriété :

Méthode 1 : utilisez la formule R1C1 pour créer une référence absolue

Sub MultipyCell()

Range("C5").FormulaR1C1 = "=R1C1*20"

End Sub

Lorsque vous exécutez cette macro particulière, la cellule C5 affichera le résultat de la cellule de la ligne 1 et de la colonne 1 multiplié par 20.

Méthode 2 : utilisez la formule R1C1 pour faire une référence relative

Sub MultipyCell()

Range("C5").FormulaR1C1 = "=R[-4]C[-2]*20"

End Sub

Lorsque vous exécutez cette macro particulière, la cellule C5 affichera le résultat de la cellule située 4 lignes au-dessus et 2 colonnes à sa gauche multiplié par 20.

Les exemples suivants montrent comment utiliser chaque méthode en pratique avec une feuille Excel contenant la valeur 10 dans la cellule A1 :

Exemple 1 : utilisez la formule R1C1 pour créer une référence absolue

Nous pouvons créer la macro suivante pour multiplier la valeur de la cellule de la ligne 1 et de la colonne 1 par 20 et afficher les résultats dans la cellule C5 :

Sub MultipyCell()

Range("C5").FormulaR1C1 = "=R1C1*20"

End Sub

Lorsque nous exécutons cette macro, nous recevons le résultat suivant :

Nous pouvons voir qu’Excel a utilisé la formule =$A$1*20 pour calculer le résultat dans la cellule C5 .

Puisque nous avons utilisé R1C1 dans notre formule en VBA, nous avons fait une référence absolue à la cellule de la première ligne et de la première colonne, qui est la cellule A1 .

Exemple 2 : utiliser la formule R1C1 pour faire une référence relative

Nous pouvons créer la macro suivante pour multiplier la valeur de la cellule qui se trouve 4 lignes au-dessus et 2 colonnes à gauche de la cellule C5 par 20 et afficher les résultats dans la cellule C5 :

Sub MultipyCell()

Range("C5").FormulaR1C1 = "=R[-4]C[-2]*20"

End Sub

Lorsque nous exécutons cette macro, nous recevons le résultat suivant :

Nous pouvons voir qu’Excel a utilisé la formule =A1*20 pour calculer le résultat dans la cellule C5 .

Puisque nous avons utilisé des parenthèses avec R[-4]C[-2] dans notre formule en VBA, nous avons fait une référence relative à la cellule située 4 lignes au-dessus et 2 colonnes à gauche de la cellule C5 , qui est la cellule A1 .

Remarque : Vous pouvez trouver la documentation complète de la propriété VBA FormulaR1C1 ici .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans VBA :

VBA : une formule simple pour « Si la cellule contient »
VBA : Comment compter les occurrences de caractères dans une chaîne
VBA : comment vérifier si une chaîne contient une autre chaîne

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *