Option Explicit ' S'il y a lieu, les variable utilisées seront toutes déclarées.
Private Sub Worksheet_Change(ByVal Target As Range) ' Se déclenche lorsque le contenu d'une cellule change.
'Si la cellule changée est avant la ligne 3 ou la colonne 2, ou si plusieurs cellules sont changées, on sort:
If Target.Row < 3 Or Target.Column < 2 Or Target.Count <> 1 Then Exit Sub
'Pour ne pas exécuter cette procédure, alors qu'elle tourne déjà, quand je vais changer la cellule:
Application.EnableEvents = False
'Étant munie d'un format de pourcentage, la cellule a pour valeur celle tapée divisée par 100.
'Il faut donc la remultiplier par 100 pour ravoir la valeur tapée.
'Il faut en prendre la conversion en texte utilisant le point comme séparateur décimal pour qu'elle
'soit compatible avec la formule en style R1C1 qu'on va installer.
'Elle retranchera de 1 cette valeur divisée par celle de la cellule en ligne 1 et colonne courante:
Target.FormulaR1C1 = "=1-" & Str(Target.Value * 100) & "/R1C"
Application.EnableEvents = True ' Rétablit la gestion programmée des évènements Excel:
End Sub