Fonction toute simple, sans argument :
ActiveCell.Formula
= "=pi()"
Un seul argument, chiffre constant :
ActiveCell.Formula =
"=ROMAN(22)"
L'argument est une référence de cellule :
ActiveCell.Formula =
"=ROMAN(B1)"
L'argument est une plage de cellules
ActiveCell.Formula =
"=SUM(A1:A3)"
Deux arguments, utilisation de la virgule, référence de cellule
ActiveCell.Formula =
"=LEFT(A10,2)"
Plus compliqué : utilisation de guillemets en cas de constante textuelle
:
ActiveCell.Formula =
"=LEFT(" & """"
& "abricot" &
"""" & ")"
Pour utiliser les fonctions en français : FormulaLocal
ActiveCell.FormulaLocal
= "=Somme(A1:A3)"
En cas de FormulaLocal et de plusieurs paramètres : Point virgule :
ActiveCell.FormulaLocal
= "=gauche(A10;2)"
On peut utiliser cette technique pour obtenir en VBA le résultat d'une fonction intégrée d'Excel :
Range("IV65536").FormulaLocal
= "=ROMAIN(22)"
MsgBox ActiveCell.Value
Range("IV65536").Clear
Une alternative a ce dernier exemple est WorksheetFunction :
MsgBox WorksheetFunction.Roman(22)
La liste des fonctions en anglais se trouve ici
On peut afficher la fonction :
En anglais ou ...
MsgBox ActiveCell.Formula
... en français :
MsgBox ActiveCell.FormulaLocal
Ou la valeur résultante :
MsgBox ActiveCell.Value
ou
MsgBox ActiveCell
Si la cellule contient une date, on peut obtenir le no de série avec
MsgBox ActiveCell.Value2
On peut utiliser la notation RowNoLigneColumnNoColonne :
Ici, A10 :
ActiveCell.FormulaR1C1
= "=LEFT(R10C1,2)"
Avec le pendant en français :
ActiveCell.FormulaR1C1Local
= "=Gauche(R10C1;2)"
Cette nouvelle notation permet d'appliquer des références relatives
:
Traduction en chiffres romains de la cellule :
- 3 cellules plus haut - 2 cellules plus à droite
ActiveCell.FormulaR1C1
= "=Roman(R[-3]C[2])"
3 cellules plus haut, même colonne :
ActiveCell.FormulaR1C1
= "=Roman(R[-3]C[0])"
Autre notation, plus condensée :
ActiveCell.FormulaR1C1
= "=Roman(R[-3]C)"