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 :

[VBA-E] Pb de fermeture de macro!


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Par défaut [VBA-E] Pb de fermeture de macro!
    Bonjour,

    lors de l'ouverture d'un fichier excel macro.xls, une macro
    en auto_open s'éxécute; Elle ouvre de nombreux classeurs
    excel et à la fin j'aimerais que le fichier macro.xls
    se ferme tout en laissant le classeur resultat ouvert à l'ecran.

    Si je ferme l'application
    excel se ferme, alors que j'aimerais conserver le fichier resultat à l'ecran.
    Si je ferme le classeur macro.xls, un gros bug se produit car
    la macro auto_open ne peut plus tourner, Donc j'ai l'impression
    que je dois laisser ouvert le fichier macro.xls en plus de mon
    classeur résultat.


    dites moi si vous avez un solution à mes interrogations.

    Merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 344
    Par défaut
    salut,

    essaie de mettre Application.Quit en commentaire pour voir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
     
    'Application.Quit

  3. #3
    Invité
    Invité(e)
    Par défaut
    Salut

    Essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    application.Workbooks(x).close
    En mettant à x le nom de chaqu'un de tes classeurs que tu veux fermer, donc autant de ligne que de classeur à fermer

    Starec

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Si tu as plusieurs classeurs à fermer, tu peux mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Fermertout()
    For Each LeClasseur In Application.Workbooks
        If Not LeClasseur.Name = ThisWorkbook.Name Then LeClasseur.Close False
    Next
    End Sub
    Là, tu fermes tous les classeurs à l'exception du classeur contenant les macros.
    Tu mets "...Close true" si tu veux les enregistrer
    A+

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Par défaut suite
    C'est ce que j'ai fait, mais je voudrais que cela ferme
    le classeur avec la macro et laisse ouvert mon rapport
    final où il n'y a la macro.

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Si tu fermes le fichier qui contient la macro, tu n'auras plus de macro pour fermer les autres fichiers
    Mais tu peux faire ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Fermertout()
    For Each LeClasseur In Application.Workbooks
        if not LeClasseur.name = "LeNomDuFichierQueTuVeuxGarderOuvert.xls" and _
           not LeClasseur.Name = ThisWorkbook.Name Then LeClasseur.Close False 'ou true
    Next
    ThisWorkbook.Close true 
    'ou False selon que tu veux enregistrer ou non le fichier contenant les macros
    End Sub
    Ainsi tu fermeras le classeur contenant les macros en dernier

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 79
    Par défaut question
    Il faut donc que j'execute cette fonction en dernier dans
    mon programme, sinon plus de macro, donc mon programme
    risque de bugger!
    C'est ca?

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Ben oui... C'est ta demande.
    Lis le code, tu devrais comprendre...
    Tu as plein de fichier ouverts : Pincemi et pincemoi, ainsi qu'un fichier contenant les macros, LeBateau
    Tu veux garder Pincemoi ouvert
    Ce code ferme d'abord tous les fichier SAUF Pincemoi,
    la dernière ligne fermant ensuite LeBateau...
    Qu'est-ce qu'il reste...

    Oui, en cette fin de semaine, je craque !

Discussions similaires

  1. [VBA-E]Empecher la fermeture par l'utilisateur
    Par repié dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/02/2006, 16h31
  2. [VBA] [Excel] feuille masquée = pas de macro?
    Par Angel79 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 30/01/2006, 12h58
  3. [VBA-E]Executer fonction VBA sur Excel sans activer la macro
    Par marie10 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 19/01/2006, 14h34
  4. [VBA-E] Lancement automatique d'une macro (débutante)
    Par pom_poir dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/11/2005, 17h57
  5. Réponses: 7
    Dernier message: 19/07/2005, 08h31

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