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 :

error #Getting_Data VBA Excel


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut error #Getting_Data VBA Excel
    Bonjour à tous,

    Je travail actuellement sur un prototype Excel permettant de publier des rapports issu d'un pivot table. je génère autant de rapport que de membre d'un niveau d'une dimension. La construction des rapports se fait à l'aide des fonction Cube dans Excel depuis la version 2007 (cubeset, cubemember, cubevalue ...)

    Par exemple, lorsque la fonction CUBEMEMBER produit une valeur, elle affiche temporairement le message « #GETTING_DATA… » dans la cellule avant que toutes les données soient récupérées.

    #Getting_data equivaut à l'erreur 2043

    Une cellule pointe sur la cellule avec la fonction cubemember pour récupérer la valeur de celle-ci, cependant comme mon traitement boucle sur les membres de ma dimension, parfois la données n'est pas encore disponible ce qui provoque une erreur.
    Est-il possible de mettre en attente le process jusqu'à la disponibilité des données pour poursuivre les traitements.

    J'ai essayé plusieurs méthodes mais sans succès, en effet par exemple je boucle sur la cellule contenant le fonction cubemember et tant que la cellule est à #getting_data, ne pas passer à l'étape suivante , seulement la cellule ne veut pas se synchroniser, la valeur reste à #Getting_data.
    Faut-il peut être libérer de la mémoire pour pouvoir rafraichir les données?

    Ex : la cellule A1 contient cette fomule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     =cubeset(cube;([Date].[2010],[country].children);"test")
    Je vérifie si la données dans la cellule est disponible, si elle ne l'est pas, alors je boucle tant que la données n'est pas disponible

    ex de code :
    Vérification de la dispo des données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    While cstr Range("A1").value) = " error on 2043 "
    
    loop
    wend)
    
    next step : (step 2)
        Range("B1").value = Range("A1&).value
    Résultat : La celulle A1 reste sur #GETTING_DATA, et mon traitement ne se poursuis pas car la données n'est pas disponible...

    Si je ne boucle pas, j'aurais alors une erreur au step 2, en effet la données n'étant pas encore disponible, j'aurais une erreur de type de donnée

    Auriez-vous une idée pour qui me permettrait depoursuivre mes traitements des la disponibilité des données ?

    Merci beaucoup

    Abdeslam

  2. #2
    Expert éminent sénior 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
    Points : 31 877
    Points
    31 877
    Par défaut
    insère un DoEvents dans ta boucle d'attente
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Merci pour ta réponse, cependant le Doevents ne solutionne pas le problème, en effet je ne souhaite pas avoir la main sur le fichier (car je génère plusieurs fichiers), je veux que tout ce fasse de façon automatique, que le traitement puisse continuer une fois les données disponibles, tant que celle ci ne sont pas disponible alors attendre qu'elles le soient. J4ai bien essayé de mettre un sleep, mais le problème fait que mon traitement s'arrête et les données ne se s'actualisent pas, la cellule reste à #GETTING_DATA. Par contre contre si j'arrête mon programme, les données s'actualisent.
    Y aurait-il un moyen de gérer ce cas particulier.
    Merci beaucoup

Discussions similaires

  1. DLL Fortran depuis VBA Excel [Error 48]
    Par zerbault dans le forum Fortran
    Réponses: 6
    Dernier message: 12/11/2012, 13h51
  2. Réponses: 2
    Dernier message: 15/08/2010, 16h20
  3. [VBA Excel] On error resume next
    Par alex_95 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 02/03/2007, 19h20
  4. VBA EXCEL : Probleme avec On Error
    Par izalec dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/10/2006, 10h23

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