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 plusieurs pauses dans une seule macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 45
    Points : 24
    Points
    24
    Par défaut Mettre plusieurs pauses dans une seule macro
    Bonjour à tous,

    J'ai une macro qui dans son cheminement exécute trois batch.
    Le premier et le second ont notamment besoin de quelques petites secondes pour remplir leur mission, la macro ne leur en laisse pas toujours le temps.

    Pour le premier batch, j'ai ajouté ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    newHour = Hour(Now())
    newMinute = Minute(Now())
    newSecond = Second(Now()) + 5
    waitTime = TimeSerial(newHour, newMinute, newSecond)
     
    Shell (Chemin & "unzip.bat")
    Application.Wait waitTime
    Cela laisse 5 secondes de répit, c'est parfait.
    J'ai essayé de mettre le même "Application.Wait waitTime" après mon second Shell mais cela n'est pas pris en compte et je ne comprends pas pourquoi.
    J'ai également fait un "waitTime2" pour le dissocier du premier mais rien y fait.

    Auriez-vous une idée s'il vous plait ?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Bonjour,

    n'ayant aucune idée de ce qui doit être réalisé, la question est alors pourquoi du VBA ?
    Car si c'est réalisable par fichier de commandes, il suffit soit de tout regrouper en un seul
    soit d'appeler chaque fichier dans un fichier de commandes principal !

    Et puis s'il y a vraiment besoin d'un code VBA alors lui donner la priorité en évitant les commandes externes …

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Stockholm, London, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 33
    Points : 48
    Points
    48
    Par défaut
    Bonjour,
    Si tu veux que ton programme attende 5 sec sans rien faire à côté (je sais pas si j'ai compris ta question), voila un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    T = Timer: While T + 5 > Timer: Wend
    Cordialement,
    Un aspirant à la programmation

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 45
    Points : 24
    Points
    24
    Par défaut
    Cette macro sert pour l'import quotidien d'une base de données (que l'on reçoit en zip) dans notre GED.
    La personne qui s'en occupe n'a qu'à récupérer le zip et ouvrir le fichier Excel avec la macro, le reste se fait automatiquement :

    - Décompression du zip (1er batch)
    - Mise au format correct du fichier csv récupéré
    - Import dans le serveur (2ème batch)
    - Archivage du fichier avec la date dans le nom
    - Suppression des fichiers « résidus » dans le dossier (3ème batch) et fermeture du fichier macro

    Le but étant que la personne ait le moins de choses à faire.
    Le deuxième batch n'a pas toujours le temps de s'exécuter, ça doit se jouer à quelques millisecondes ! Je dirais que 2 fois sur 3 cela fonctionne du premier coup, sinon il faut relancer la macro.

    S'il y a une solution simple et/ou si quelqu'un comprend pourquoi je ne peux pas mettre deux Application.wait, je suis preneur ! Sinon tant pis... Merci !

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 45
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par Overeath Voir le message
    Bonjour,
    Si tu veux que ton programme attende 5 sec sans rien faire à côté (je sais pas si j'ai compris ta question), voila un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    T = Timer: While T + 5 > Timer: Wend
    Cordialement,
    Un aspirant à la programmation
    Oui c'est ce que je recherche, merci pour ta proposition je vais essayer !

  6. #6
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 45
    Points : 24
    Points
    24
    Par défaut
    Super ça fonctionne !! Merci beaucoup Overeath !

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

Discussions similaires

  1. [Toutes versions] Macro regroupant plusieurs classeurs dans une seule feuille
    Par lisandjo dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 23/04/2012, 07h52
  2. Mettre plusieurs fichiers dans un seul fichier ou une table…
    Par wahab2052 dans le forum Développement de jobs
    Réponses: 7
    Dernier message: 21/09/2009, 20h41
  3. Mettre le contenu de plusieurs lignes dans une seule case
    Par bellamouna dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 09/12/2008, 12h11
  4. Mettre plusieurs variables dans une seule
    Par fixbraun dans le forum Langage
    Réponses: 5
    Dernier message: 23/03/2007, 21h34
  5. plusieurs enregistrements dans une seul ligne
    Par Celelibi dans le forum Requêtes
    Réponses: 3
    Dernier message: 03/01/2005, 15h55

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