ma fonction retourne #VALEUR! lors de la suppression d'une ligne

oracle7

XLDnaute Nouveau
[Résolu] ma fonction retourne #VALEUR! lors de la suppression d'une ligne

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:
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:
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 :):):)
 
Dernière édition:

oracle7

XLDnaute Nouveau
[Résolu] : ma fonction retourne #VALEUR! lors de la suppression d'une ligne

@ ROGER2327

Bonjour,
Finalement ta proposition m'a bien aidé. Sur la base de ton code et avec un peu de réflexion plus quelques compléments en fait, liés à l'application de règles métier complémentaires, j'arrive maintenant à mon but premier. C'est super !
Je te remercie donc encore vivement de ton aimable aide. Sans celle-ci je "pataugerai" encore ...
Milles MERCIs
Cordialement
oracle7 :):):)
 

Discussions similaires

Statistiques des forums

Discussions
314 651
Messages
2 111 554
Membres
111 200
dernier inscrit
Ralfidu02