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 :

Function dans une formule comment recalculer [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre prolifique Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 740
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 740
    Par défaut Function dans une formule comment recalculer
    Bonjour à toutes et tous,

    J'ai un soucis avec Excel 2010.

    Dans un classeur avec macros qui contient plusieurs feuilles, j'ai créé une fonction qui effectue un calcul en fonction de plusieurs cellules et pas mal de condition, et renvoie le résultat.

    Dans la feuille principale, dans les cellules d'une colonne j'ai mis la formule : "=MaFonction(Ann)"
    avec Ann = la cellule de référence qui permet à la fonction de faire le calcul.

    La fonction fonctionne parfaitement.

    Mais, quand je change des données du classeur, située dans les autres feuilles de calcul dont le résultat dépend, le recalcul ne s'effectue pas !
    J'ai alors créé une macro à l'enregistrement du classeur, qui force le recalcul des cellules de la plage qui contient la fonction mais ça ne donne rien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub Workbook_AfterSave(ByVal Success As Boolean)
      Dim Cell As Range
     
      For Each Cell In Sheets("Liste").Range("C2:C17")
        MsgBox ("Cellule " & Cell.Address)
        Cell.Calculate
      Next
    End Sub
    Pourtant, je passe bien dans la boucle (j'ai mis un msgbox), mais ça n'entre pas dans la fonction (là aussi j'ai mis un msgbox).

    Comment puis-je faire pour recalculer les cellules en question ?

    Si quelqu'un a une idée... Merci d'avance

    JS

    PS : Je continue à chercher de mon coté...

  2. #2
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Bonjour Jon Shannow,

    Avec un simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Workbook_AfterSave(ByVal Success As Boolean)
     
        Sheets("Liste").Calculate
     
    End Sub
    ça ne fonctionne pas ?

    Antony

  3. #3
    Membre prolifique Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 740
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 740
    Par défaut
    Merci de ta réponse, mais non, ça aurait été trop simple.

    Je pense avoir trouvé un moyen, je regarde et je vous donne le résultat...

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    j'ai créé une fonction qui effectue un calcul en fonction de plusieurs cellules
    Une fonction est ré-évaluée si un de ses antécédent est modifié.
    Donc passe ces cellules en paramètre.
    eric

  5. #5
    Membre prolifique Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 740
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 740
    Par défaut
    C'est exactement ça... Je viens de faire le test, et dans les paramètres de la fonction il faut qu'il y ait toutes les plages de cellules participant aux calculs.

    Merci de vos réponses
    A+
    JS

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/06/2010, 04h46
  2. Réponses: 2
    Dernier message: 01/08/2008, 16h57
  3. Comment insérer une variable dans une formule type R1C1
    Par jo385 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/07/2008, 13h20
  4. Réponses: 3
    Dernier message: 29/01/2008, 12h08
  5. comment ecrire une variable dans une formule ?
    Par Djohn dans le forum Excel
    Réponses: 12
    Dernier message: 10/10/2007, 12h55

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