IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

ma fonction retourne #VALEUR! lors de la suppression d'une ligne [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 66
    Par défaut 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 : 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

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Il était judicieux de reporter ta fonction et non les sub d'ajout ou suppression

    essaie de mettre au début de ta fonction

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 66
    Par défaut
    bonsoir mercatog

    J'ai placé "application.volatile" en début de ma fonction comme tu me l'a conseillé.
    Eh bien c'est une catastrophe, ma fonction (en phase saisie de données) me renvoie systématiquement des #VALEUR!
    Donc c'est pas la solution !
    Je cherche d'autres pistes du coup.
    Merci quand même pour ton aide.

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    sans ta fonction, on ne peut rien deviner
    si tu la mettais ici, ça serait mieux

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 66
    Par défaut
    Effectivement ce sera plus simple. Donc ci-joint le fichier en question.
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 02/06/2015, 13h22
  2. Réponses: 4
    Dernier message: 12/11/2010, 01h35
  3. Réponses: 7
    Dernier message: 15/09/2010, 15h37
  4. Réponses: 3
    Dernier message: 23/10/2007, 13h35
  5. [Debutant] Soucis lors de la suppression d'une JComboBox
    Par MoMotte dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 22/08/2006, 17h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo