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