Bonjour à tous,

Voici mon problème :
Contexte :
Dans chaque cellule de la plage A1:A100 j'ai une formule personnelle écrite en VBA du type "=MaFonction (Bx)".
Dans la plage B1:B100, je saisi une valeur numérique X qui sert de donnée d'entrée à "MaFonction".
En entête du tableau j'ai deux boutons. Un pour insérer une ligne n'importe où dans la plage A1:B100. L'autre pour supprimer une ligne quelconque dans cette même plage.
Voici le code de ces 2 boutons :
Bouton "Insérer ligne"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub CommandButton1_Click()
    Dim iNoLigne As Integer
 
    Application.ScreenUpdating = False
    iNoLigne = ActiveCell.Row ' On récupère le N° de la ligne courante
    With Range("A" & iNoLigne & ":C" & iNoLigne)
        .Resize(1).EntireRow.Insert ' On insert une ligne vide
        ' On recopie les formats et formules de la ligne précédente
        .EntireRow.Copy .Offset(-1).Resize(1).EntireRow
        On Error Resume Next ' Au cas où il n'y ait pas de constantes
        ' On efface les valeurs constantes préentes dans la ligne
        .Offset(-1).Resize(1).EntireRow.SpecialCells(xlConstants).ClearContents
    End With
    Application.ScreenUpdating = True
    ActiveCell.Select
End Sub
Bouton "Supprimer Ligne"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub CommandButton2_Click()
    Dim iNoLigne As Integer
 
    Application.ScreenUpdating = False
    iNoLigne = ActiveCell.Row ' On récupère le N° de la ligne courante
    With Range("A" & iNoLigne & ":C" & iNoLigne)
        ' On supprime la ligne courante
        .Resize(1).EntireRow.Delete
    End With
    Application.ScreenUpdating = True
    ActiveCell.Select
End Sub
Mon Problème :
Lorsque je supprime une ligne, TOUTES les cellules contenant "MaFonction" perdent le résultat généré par "MaFonction" et affichent "#VALEUR!".
Pour mémoire, lorsque j'insére une ligne via le bouton "Insérer ligne", tout est OK, je ne perd pas l'affichage du résultat de calcul pour chaque ligne.

Quelqu'un peut-il me dire comment corriger ce problème.
D'avance MERCI.

Cordialement
oracle7