Macros Excel
Pour débuter (5)

Analysons la 1ère ligne du code.
ActiveCell.FormulaR1C1 = "25" .
Nous avons entré 25 dans la cellule A1 ou L()C(). Le fait de cliquer sur une cellule d'une feuille active cette cellule ce que traduit VBA par l'objet ActiveCell. Puisque l'on modifie cette cellule en entrant une valeur, VBA traduit cette action par la méthode FormulaR1C1.
Cela nous donne ActiveCell.FormulaR1C1 car chaque terme est obligatoirement séparé par un point dans la syntaxe VBA.
Le fait de modifier le contenu d'une cellule, c'est-à-dire affecter à cette cellule une nouvelle valeur se traduit par le signe égale ("=") suivi de la valeur entrée, valeur entre guillemets.
Ce qui nous donne bien : ActiveCell.FormulaR1C1 = "25"

 

Si vous souhaitez seulement automatiser des taches simples, ne vous souciez pas de la syntaxe puisque VBA Excel enregistre le code pour vous.
Par contre, comprendre la manière dont VBA interprète les déplacements (relatifs ou absolus) est beaucoup plus intéressant puisqu'il vous permet de créér des macros extrêmement souples après avoir enregistré une simple macro pour l'exemple.

Regardons le code de la seconde ligne (déplacement de la cellule active de A1 en B1):
Range("B1").Select car vous êtes en mode absolu par défaut.
Si vous aviez enregistré le code en référence relative, vous auriez obtenu le code suivant: ActiveCell.Offset(0, 1).Range("A1").Select

 

Nous retrouvons ensuite un code similaire à la 1ère ligne. Simplement, le 25 est remplacé par 26 que nous avons entré dans la colonne B1.

 

le code de la 4ème ligne est similaire à la seconde ligne. Seul changement en mode absolu :
Range("B1").Select est remplacé par Range("C1").Select.
En mode relative, la ligne est identique à la ligne 2 (ActiveCell.Offset(0, 1).Range("A1").Select) puisque l'on se déplace d'une cellule vers la droite.

 

la formule "Somme" cellule A1 + cellule B1 est traduit par VBA de la façon suivante :
ActiveCell.FormulaR1C1="SUM(RC[-2]:RC[-1]). Nous connaissons déjà les termes à gauche du signe "égal". La syntaxe est identique à la ligne 1. Par contre, nous découvrons à droite du signe "egal" comment VBA a interprété la formule "SOMME(A1:B1)". La formule est d'abord entourée de guillemets (") puis VBA fait appel à la fonction VBA SUM suivi des paramêtres correspondants à ceux que nous avons entré. On peut constater que la fonction VBA "SUM" utilisent toujours des arguments en références relatives et remplace les parenthèses par des crochets, ainsi "RC[-2]" signifie Row (rang) Column (colonne) -2 soit 2 colonnes à gauche de la position actuelle.

 

La dernière ligne du code ressemble beaucoup à la 2ème et la 4eme ligne puisqu'il s'agit d'un déplacement d'une cellule vers le bas provoqué par la touche "Entrée" (comportement par défaut d'Excel qui déplace la cellule active vers le bas après appuis de la touche "Entrée".


Précédent
Suivant
Accueil
définitions
VBA et conditions