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 :

Mettre une pause le temps d'une requête.


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 36
    Par défaut Mettre une pause le temps d'une requête.
    Bonjour,

    Je récupère à l'aide d'un macro, des données d'une base de données.
    Bien sur la manipulation dure 2 minutes.
    J'ai créé un autre bouton ensuite pour faire un traitement sur ses données téléchargés.

    J'aimerai maintenant tout faire d'un trais.
    Le problème est que ma 1er macro lance le téléchargement et la seconde s’enchaîne illico sans laisser la 1ere finir. Il me faut donc mettre une pause avant de lancer la seconde.

    Savez-vous comment faire ?


    Merci

  2. #2
    Membre éclairé
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Août 2012
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Responsable Maintenance

    Informations forums :
    Inscription : Août 2012
    Messages : 479
    Par défaut
    Salut

    récupère le nombre d'occurences à traiter.
    Pour chaque transfère de ta base de données augmente un compteur de 1 jusqu'a la totalité des données transférés.

    Ensuite si ton compteur est atteint fais la suite du traitement

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 36
    Par défaut
    Salut, et merci pour la réponse,

    Je ne peux faire comme sa, car j'ai inclus ma requête dans ma page comme ceci :
    http://adresseip/getdata/ficher.php?...veur=localhost

    Et pour mettre à jour les données à partir de ma macro je fais juste un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets("feuille1").Select
                ActiveWorkbook.RefreshAll

  4. #4
    Membre éclairé
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Août 2012
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Responsable Maintenance

    Informations forums :
    Inscription : Août 2012
    Messages : 479
    Par défaut
    Peux tu nous donner ton code je ne pense pas que ca soit un secret militaire :-).


    Merci

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 36
    Par défaut
    Mon code je viens de te le donner

    Ma macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub CommandButton1_Click()
        Sheets("Data").Select
                 ActiveWorkbook.RefreshAll
        Sheets("User Check").Select
                ActiveWorkbook.RefreshAll    
     
        Call remplacerpoint
    End Sub
    Dans les page Data et user Check je leur ai ajouté une requête. (cette requête fait appel à un fichier php qui récupère les données dans ma base de donnée.

    Mon problème est que call remplacerpoint se lance alors que le refresh des pages n'est pas encore terminé.

  6. #6
    Membre éclairé
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Août 2012
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Responsable Maintenance

    Informations forums :
    Inscription : Août 2012
    Messages : 479
    Par défaut
    J'aurai en fait aime voir comment tu chaines les 2 macros ?
    Puisqu ' independement elles fonctionnent.

    Sinon colle un Doevents avant le call pour temporiser

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 36
    Par défaut
    je fais simplement un call

    comme ceci : Call remplacerpoint

    remplacerpoint est ma 2eme macro.

  8. #8
    Membre éclairé
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Août 2012
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Responsable Maintenance

    Informations forums :
    Inscription : Août 2012
    Messages : 479
    Par défaut
    sinon pour moi tu rafraîchis 2 fois tout le classeur ????

    1 seul suffirai

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 36
    Par défaut
    Pour moi, je sélectionne la feuille Data, je la met à jour.
    Ensuite, Je sélectionne la feuille DataUser, je la met à jour.

    Je veux mettre une pause le temps des mises à jours car sa dure environs 2 minutes,

    Ensuite je fais appel à mon autre macro avec call.

    Voilà.

    y'a pas un sleep 2 minutes ? Comme dans tout les autres langage ?

  10. #10
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Il y a la méthode OnTime qui permet de programmer le déclenchement d'une procédure à une heure précise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.OnTime Now + TimeValue("00:02:00"), "my_Procedure"

  11. #11
    Membre éclairé
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Août 2012
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Responsable Maintenance

    Informations forums :
    Inscription : Août 2012
    Messages : 479
    Par défaut
    workbook etant le classeur tu rafraichis tout le classeur

    Donc les n sheets le composant également

    Si c'est un peu blindé ca va effectivement déjà prendre du temps

    le but etant de rafraichir une feuille al a fois vaut mieux forcer un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheet("xxx").Calculate

Discussions similaires

  1. Réponses: 8
    Dernier message: 17/03/2009, 18h49
  2. [Firebird] Comment mettre un verrou le temps d'une impression?
    Par roland34 dans le forum Bases de données
    Réponses: 4
    Dernier message: 28/11/2008, 20h23
  3. Marquer une pause avant de lancer une action
    Par PrinceMaster77 dans le forum ASP
    Réponses: 1
    Dernier message: 12/07/2006, 12h50
  4. Réponses: 3
    Dernier message: 21/05/2006, 00h28
  5. Création d'une pause au milieu d'une application
    Par Henri dans le forum Windows
    Réponses: 3
    Dernier message: 23/03/2006, 17h31

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