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 :

Récupérer la valeur d'une cellule avec fonction sur une autre feuille


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 29
    Points : 18
    Points
    18
    Par défaut Récupérer la valeur d'une cellule avec fonction sur une autre feuille
    Bonjour à tous,


    Tout est dans le titre, je cherche donc à récupérer la valeur d'une cellule de la feuille 2 dans la feuille 1

    J'utilise ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mavaleur = Worksheets("Feuille 2").Range("G13").Value
    MsgBox mavaleur
    Ou ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mavaleur = Worksheets("Feuille 2").Cells(13, 7).Value
    MsgBox mavaleur
    Ces deux syntaxes marchent très bien quand je mets une valeur du genre "123" dans la case G13 mais mon problème c'est que dans ma case G13 j'ai en fait le résultat d'une fonction. Et quand je récupère la valeur il semble que la fonction n'ai pas été calculée et ma Msgbox affiche "0"...

    J'ai tenté de faire en sorte que la fonction soit calculée avant la récupération de la valeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Worksheets("Feuille 2").Range("A6:G13").Calculate
        mavaleur = Worksheets("Feuille 2").Range("G13").Value
        MsgBox mavaleur

    Mais le problème persiste.

    Merci d'avance pour votre aide

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2008
    Messages : 61
    Points : 52
    Points
    52
    Par défaut
    Quelle est la fonction ? car pour moi je n'ai aucun problème sur une fonction somme par exemple.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Bon et bien j'ai trouvé la solution "tout seul" comme un grand grâce à ces astuces :

    http://vb.developpez.com/faqvba/?page=3.1.1#ModeCalcul

    ftp://ftp2.developpez.be/developps/vb/VB-excel2.pdf pages 5; 25 et 28 à 36



    En fait je pense que le problème venait du fait que mon classeur est assez lourd à recalculer, or comme il est dit dans le lien ci-dessus :

    Calculation est une propriété très importante pourl'optimisation du temps d'exécution... pour les feuilles contenant des formules, le mode de calcul peut être très coûteux...
    Et comme les lignes de codes de mon message précédents étaient écrites dans une boucle, à chaque occurrence de la boucle excel devait recalculer tout mon classeur et, en plus d'être assez lent, cela causais l'erreur précédemment citée. (Pourquoi je ne sais pas exactement... il faudrait savoir dans quel ordre excel fait tout ses calculs..)

    Enfin bref en stoppant le calcul automatique du classeur avant la boucle et en le redémarrant après ainsi :

    Pour stopper :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Calculation = xlCalculationManual
    Pour remettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Calculation = xlCalculationAutomatic
    Plus de problème et c'est instantané ! (Vous n'imaginez pas comme je suis heureux !)

    Et maintenant j'en profite pour appliquer cette méthode à plein d'autres endroits car ça allège considérablement les calculs !

    Merci Stmastma pour ta réponse.

    Je n'avais pas vu j'étais entrain d'écrire mon message.

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

Discussions similaires

  1. [XL-2010] Récupérer la valeur de plusieurs cellules en fonction d'une heure
    Par facteur dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 30/01/2015, 11h06
  2. [XL-2003] Macro avec boucle sur une colonne et condition sur une autre
    Par Isabelle86 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/10/2010, 10h31
  3. Réponses: 2
    Dernier message: 05/03/2010, 14h15
  4. Réponses: 1
    Dernier message: 03/05/2009, 06h40
  5. Requete SUM sur une table avec critère sur une autre
    Par wail00 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/05/2007, 16h58

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