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 :

Pb userform qui execute une formule bloomberg seulement lorsque le userform ferme


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Par défaut
    Bonjour,

    Voici mon problème :

    J'ai un userform qui execute une fonction à l'aide de FormulaR1C1.
    La fonction en question est une requete Bloomberg qui doit me lister un historique dans une certaine plage de données. Ensuite ma macro test les valeurs obtenues afin de les traiter. Mon problème est que le resultat de la requete bloomberg ne s'affiche dans le classeur excel que lorsque mon userform se ferme, je n'ai donc pas accès aux données, et je ne peux donc les traiter.

    En gros dans la cellule ou je dois executer ma requete bloomberg il est affiché, tant que je ne ferme pas le usrform :

    #N/A Requesting Data... (ce qui est normalement affiché pendant 3 secondes pas plus, avant que l'historique ne sorte)

    Savez vous comment je pourrais actualiser la feuille? Enfin bref auriez vous une solution à ce problème?

    Cordialement
    Ly,

    Market Risk at SCOR

    Re bonjour,

    J'ai trouvé une solution partiel, i.e. qu'en mettant showmodal à false, il n'est plus nécessaire de fermer le userform pour qu'il m'affiche ma requete. Cependant, tout de suite après ma requete (elle ne me sort pas le resultat encore), j'ai un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (recherche dans l'historique une donnée) then 
      instruction
    else
      msgbox "blabla2"
    end if
    Le soucis est qu'il m'affiche le msgbox, et seulement lorsque je clique sur OK, bien là s'affiche le résultat de ma requête. Or j'en ai besoin avant la boucle if afin de faire mes tests.

    Avez vous des idées?

    Cordialement,
    Ly

    Market Risk at SCOR

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonjour,

    il faut faire une boucle d'attente après l'appel de ton userForm par exemple une boucle While :
    dans un module
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub MonTest()
        UserForm1.Show False
        While Not UserForm1.FinDerequete
            DoEvents
        Wend 'Attente mise à 1 variable booléenne publique FinDeRequete
        MsgBox "fin"
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Option Explicit
    Public FinDerequete As Boolean
    Private Sub UserForm_Click() 'pour le test on clique sur la fenêtre pour terminer
        FinDerequete = True
        Me.Hide 'Ferme fenêtre
    End Sub
    et dans l'userform

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Par défaut
    Bonjour,

    Merci pour ta réponse, je n'ai pas pu encore checker. J'ai trouvé une manière un peu plus "manuel" pour que cela fonctionne. En gros j'ai fait executer les requetes bloombergs par des clicks sur des boutons.

    Ta solution, me laisse perplexe, car je ne pense pas que c'est une question de temps. En attendant 10 minutes la requete n'affichera toujours rien. Je pense, et suis pratiquement sur que la requete bloomberg ne fournit un résulat que lorsque le module dans laquelle elle est incluse, se termine.

    Bref, ayant jeté qu'un petit coup d'oeil à ta solution, je la testerai demain si jamais je me suis trompé. Encore merci.

    Cordialement,
    Ly

    Market Risk at SCOR

Discussions similaires

  1. Réponses: 5
    Dernier message: 23/07/2011, 13h27
  2. Créer une feuille qui contient une seule page seulement
    Par k-eisti dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/05/2007, 17h38
  3. [VBA] Macro qui envoie une formule dans une cellule
    Par Okoss dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/04/2007, 22h32
  4. Fonction qui execute une opération mathematique
    Par durnambule dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 24/04/2007, 17h42
  5. [Thread] comment arreter un thread qui execute une methode b
    Par Cyber@l dans le forum Concurrence et multi-thread
    Réponses: 8
    Dernier message: 04/08/2004, 10h51

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