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 :

Fermeture de l'application Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 464
    Par défaut Fermeture de l'application Excel
    Bonjour à tous,

    Voilà j'ai un petit soucis qui vraiment commence à m'énerver.

    je vous explique, j'ai un classeur excel où j'ai mis un evenement dans le workbook
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub workbook_open()
    Module1.Macro1
    Module1.Macro2
    Module1.Macro3
    ActiveWorkbook.Save
    Workbooks("Toto.xls").Close
    End Sub
    donc vous comprenez qu'à l'ouverture les macros ci dessus s'exécutent et le fichier se ferme.

    quand je fais ça à la main tout marche nickel le classeur se ferme, il reste juste l'application excel.

    mais quand je fais ouvrir le fichier par le biais d'une tâche planifiée qui va être répétitive toute la journée à des intervalles de temps prédifinis.
    Le problème c'est que la première fois la tâche planifiée ouvre le fichier, les macros s"éxécutent et enfin le classeur se ferme ; mais surprise ya Excel qui reste ouvert avec un classeur 1 nouveau et du coup quand la tâche se déclenche une deuxième fois, rien ne se passe puisque un classeur est ouvert.
    ça me bloque, il faut que je ferme manuellement Excel à chaque fois pour que ça marche, ce qui est bien évidemment pas du tout pratique.


    j'espère que vous avez des idées.

    je le fais en VB (fermé l'application) mais là j'ai pas visual Studio installé

    Bien cordialement

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Par défaut
    bonjour,

    Le problème c'est que la première fois la tâche planifiée ouvre le fichier, les macros s"éxécutent et enfin le classeur se ferme ; mais surprise ya Excel qui reste ouvert avec un classeur 1 nouveau et du coup quand la tâche se déclenche une deuxième fois, rien ne se passe puisque un classeur est ouvert.
    comment tu declenches les taches planifiées
    montres ton code

  3. #3
    Membre éclairé Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 464
    Par défaut
    Il n ya pas de code

    La tâche je la programme sous Windows dans Paramètres\Tâches planifiés

  4. #4
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    bonsoir,

    essaie ce code qui enregistre tous les classeurs ouverts et quitte Excel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sub ferme()
    Application.DisplayAlerts = False
    For Each w In Application.Workbooks
        w.Save
    Next w
    Application.DisplayAlerts = True
    Application.Quit
    End Sub
    cordialement

  5. #5
    Membre éclairé Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 464
    Par défaut
    Bonsoir fred,

    ça marche pas, ya toujours le classeur1 qui est ouvert

  6. #6
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonsoir.

    Je ne suis pas sûr, mais je te donne quand même l'idée. Le pb vient peut-être de ce que tu fermes dans une procédure évènementielle sur ouverture.
    Si tel est le cas, regarde la méthode OnTime qui te permet de programmer le lancement de la procédure qui va fermer, mais entre temps de terminer l'ouverture du classeur.

    PGZ

  7. #7
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    tu peux essayer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub ferme()
    Application.DisplayAlerts = False
    For Each w In Application.Workbooks
        w.close True
    Next w
    Application.DisplayAlerts = True
    Application.Quit
    End Sub


    fred

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Essaye de mettre l'instruction DoEvents entre chaque ligne de code.

    Si cela fonctionne, enlève les les uns après les autres pour trouver celui qui convienne.

  9. #9
    Membre éclairé Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 464
    Par défaut
    bonsoir,

    Fred, j'ai toujours le classeur1 qui reste ouvert.
    Starec, j'ai suivi ta méthode mais en vain.

    j'ai toujours le classeur1 qui reste ouvert.



  10. #10
    Membre chevronné Avatar de mordrhim
    Inscrit en
    Avril 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Avril 2007
    Messages : 270
    Par défaut
    essaye voir de remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("Toto.xls").Close
    par en fait il faut que tout se ferme en même temps, sinon tu fermes ton classeur et ça s'arrete la, ce ne ferme pas le reste.

  11. #11
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    bonjour
    a priori ça ne fonctionne pas
    Citation Envoyé par fred65200 Voir le message
    bonsoir,

    essaie ce code qui enregistre tous les classeurs ouverts et quitte Excel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sub ferme()
    Application.DisplayAlerts = False
    For Each w In Application.Workbooks
        w.Save
    Next w
    Application.DisplayAlerts = True
    Application.Quit
    End Sub
    cordialement

    cordialement

  12. #12
    Membre chevronné Avatar de mordrhim
    Inscrit en
    Avril 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Avril 2007
    Messages : 270
    Par défaut
    si je l'ai formulé comme ca c'est qu'il est possible que la sub proposée ait été mise apres le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("Toto.xls").Close
    or, si "Toto.xls" est le classeur "principal" (celui qui lance les macros), celui-ci se ferme et ne puirsuit plus l'execution de la macro.

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Workbook_Open()
        MsgBox "je suis ouvert"
        ThisWorkbook.Close (False)
        MsgBox "Je suis fermé"
    End Sub
    la boite de message "je suis fermé" ne s'affichera pas non ?

    enfin bon
    ceci pour expliquer à casavba que s'il ferme le classeur "principal", les opération apres la commande de fermeture ne seront pas lancées.

  13. #13
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut

    fred

  14. #14
    Membre éclairé Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 464
    Par défaut
    Ce que je comprends pas c'est qu'il ya des gens qui critiquent, mais sans tester pour voir le cas réel.

    Mordrhim, je vois ce que tu veux dire, et je suis d'accord, seulement quand tu lances une tâche planifiée ça marche pas, le classeur1 est tjs ouvert.
    Tu n'as qu'à tester toi même.
    Attention je dis bien tâche planifiée. Mais pas ouvrir le fichier manuellement.

    Bien cordialement

  15. #15
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Par défaut
    Bonsoir,

    Dans les paramètres de la tache planifiée, onglet Tache, champ Executer:

    Excel.exe /e/ "CheminEtNomDuClasseurAOuvrir.xls"

    Plus de détails ici:http://xcell05.free.fr/pages/prog/pa...es.htm#Options

    Cordialement,

    Tirex28/

  16. #16
    Membre éclairé Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 464
    Par défaut
    résolu par le biais d'un fichier batch

  17. #17
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    bonjour,

    heureux que ce soit résolu,

    peux tu mettre le code du batch en ligne pour ceux que ça intéresserai.

    Merci

    fred

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

Discussions similaires

  1. Commande OLE EXCEL : Fermeture de l'application
    Par reptooyep dans le forum C++
    Réponses: 1
    Dernier message: 18/07/2013, 15h22
  2. Fermeture d'une application Excel
    Par darkspoilt dans le forum VBA Access
    Réponses: 3
    Dernier message: 20/06/2007, 12h53
  3. [Excel] ouverture et fermeture d'une application
    Par Chewi dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/02/2007, 17h25
  4. probleme fermeture application excel
    Par JulienCEA dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 05/05/2006, 10h50
  5. [VBA-E]Fermeture Application Excel
    Par malloc_92 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/04/2006, 12h46

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