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 :

Pause dans l'exécution d'une macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Points : 89
    Points
    89
    Par défaut Pause dans l'exécution d'une macro
    Bonjour à tous,

    J'ai créé une macro qui fait les opérations suivantes :
    - Création d'un fichier Excel à partir d'un fichier texte
    - Copie d'un fichier d'archive Zip d'un lecteur reseau vers le disque D:
    - Ajout du fichier Excel dans le fichier Zip
    - Copie du fichier Zip sur le lecteur Reseau
    - Suppression du fichier excel et du fichier texte

    La macro me signale une erreur lorsque je veux ajouter le fichier excel dans l'archive.

    Si je mets des points d'arrêts dans l'execution je ne rencontre pas de problème...

    En fait l'erreur est provoqué car au moment de zipper le fichier excel celui a déjà été supprimé par la maccro... Car le lancement du zip est trop lent...

    Donc je voulais savoir comment ajouter une pause dans l'éxécution de ma macro en évitant d'utiliser la méthode Application.wat (now + "00:00:10")

    Voici le code impacté...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    Dim zippeur As String
    Dim fichierAZipper As String
    Dim archiveZip As String
    Dim copyArchiveZip As String
     
    zippeur = METHODE_ZIPPEUR
    fichierAZipper = VG_Path_TotoTxt & "\" & Format(DateTraitementPourSaveFichier, "yyyymmdd") & _
                                            "_Toto.xls"
    archiveZip = VG_Path_IndicGusoTxt & "\" & "GUSO " & Format(DateTraitementPourSaveFichier, "yyyy") & _
                                            " " & Format(DateTraitementPourSaveFichier, "mm") & _
                                            " " & Format(DateTraitementPourSaveFichier, "mmmm") & _
                                            " (xls).zip"
     
    copyArchiveZip = RACINE_D & "\" & "GUSO " & Format(DateTraitementPourSaveFichier, "yyyy") & _
                                            " " & Format(DateTraitementPourSaveFichier, "mm") & _
                                            " " & Format(DateTraitementPourSaveFichier, "mmmm") & _
                                            " (xls).zip"
     
    FileCopy archiveZip, copyArchiveZip
    DoEvents
     
    Shell (zippeur & Chr(34) & copyArchiveZip & Chr(34) & " " & Chr(34) & fichierAZipper & Chr(34))     ' ne rendra la main qu'une fois terminé
    DoEvents
     
    FileCopy copyArchiveZip, archiveZip
    DoEvents
     
    '   Suppression du fichier IndicGuso.txt et le fichier XLS
    '   ======================================================
    Kill (VG_Path_TotoTxt & "\" & VG_Nom_TotoTxt)
    '   Ajouté par PKI
    '=================
    Kill (VG_Path_TotoTxt & "\" & Format(DateTraitementPourSaveFichier, "yyyymmdd") & _
            "_Toto.xls")
    Kill (copyArchiveZip)

  2. #2
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Bonjour
    J'allais dire
    Essaye tout simplement d'insérer la commande
    mais cela semble déja fait

    SI un simple timer te suffit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim deb As Date
     
    'ta boucle de tempo
    deb = Time
    Do
    DoEvents
    Loop Until Time > deb + "00:00:05"
    Mais il doit y avoir un moyen d'éviter le timer fixe
    « Il n'y a pas de recette miracle qui permet aux gens d’écrire des programmes corrects sans avoir à réfléchir. Il faut apprendre aux gens comment réfléchir »

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Points : 1 219
    Points
    1 219
    Par défaut
    Bonjour,

    Peut-être en utilisant la fonction API Sleep

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
     
    Sub CinqSecondes()
    MsgBox "Go pour 5 secondes"
    Sleep 5000
    MsgBox "Fini"
    End Sub
    Cordialement.

    PMO
    Patrick Morange

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Mars 2009
    Messages : 100
    Points : 89
    Points
    89
    Par défaut
    Merci à vous deux pour vos réponses !!!

    J'ai utilisé la fonction sleep ça fonctionne très bien !

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

Discussions similaires

  1. [XL-2007] Exécution d'une macro au moment de saisie dans la colonne A
    Par StarStal dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 22/06/2015, 14h34
  2. Intercepter un clic dans un userform pendant l'exécution d'une macro
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 05/04/2008, 14h40
  3. Exécution d'une macro dans une base Access en VB6
    Par Safaritn dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 25/05/2007, 17h00
  4. Allongement d'uin temps d'exécution d'une macro
    Par avanrill dans le forum Access
    Réponses: 2
    Dernier message: 06/03/2006, 19h29
  5. Pause dans l'exécution d'une fonction
    Par FrankOVD dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/06/2005, 07h48

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