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 :

ouvrir et fermer un fichier excel en sauvegardant les modifications.


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Points : 8
    Points
    8
    Par défaut ouvrir et fermer un fichier excel en sauvegardant les modifications.
    Bonjour,
    Comme l'indique le titre, je veux ouvrir et fermer un fichier Excel en sauvegardant les modifications.

    Au lancement du fichier mon Excel exécute une macro a l'ouverture et doit ferme après avoir sauvegarder les modifications dus a la Macro.

    J'ai trouvé ce code après une recherche sur le forum mais ca marche pas car j'ai une feuilles Excel spécial, donc si vous avez un autre code a me proposer je vous serais reconnaissant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim Wb As Workbook
     
    For Each Wb In Application.Workbooks
        Wb.Saved = True
    Next Wb
     
    Application.Quit
    J'ai la version Excel 2003.

    Merci pour vos réponses

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 73
    Points : 52
    Points
    52
    Par défaut
    Bonour,
    alors pour fermer ton workbook en le sauvgardant utilise la fonction suivant :
    Workbooks(nom_fichier).Close SaveChanges:=True
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim Wb As Workbook
     
    For Each Wb In Application.Workbooks
        Wb.Close SaveChanges:=True
    Next Wb
     
    Application.Quit
    je pense que ca devrais marcher

  3. #3
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    Bonjour,
    Merci pour ton aide mais il y a un petit problème, c'est que ton code ne ferme que le classeur, par contre l'application Excel reste ouverte et puis le deuxième problème, c'est qu'elle se ferme avant d'exécuter la macro automatique d'ouverture (AUTO_OPEN) donc du coup y a pas de modification a sauvegarder.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 73
    Points : 52
    Points
    52
    Par défaut
    je n'ai pas tres bien compris ce que tu voulais dire par ceci :

    Citation Envoyé par decoalaa Voir le message
    Bonjour,
    Merci pour ton aide mais il y a un petit problème, c'est que ton code ne ferme que le classeur, par contre l'application Excel reste ouverte et puis le deuxième problème, c'est qu'elle se ferme avant d'exécuter la macro automatique d'ouverture (AUTO_OPEN) donc du coup y a pas de modification a sauvegarder.
    Si j'ai bien compri tu a une macro qui s'execute quand tu lance ton fichier. Il suffi de placer ce code en fin de cette macro.


    pour l'histoire de la fermeture d'excel tu peux rajouter un application.terminate a la fin comme tu avais fais au début.

  5. #5
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    Pour la sauvegarde ca marche bien mais par contre j'ai toujours le même probleme car il y a que le classeur qui se ferme mais pas l'application (meme en rajoutant le application.quit)

  6. #6
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Salut,

    tu peux mettre ceci dans un module de ton classeur concerné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    sub sauver()
    thisworkbook.save
    application.quit
    end sub
    Attention, cela ferme excel et donc aussi les autres éventuels classeurs ouverts, sauf si il y a des données non sauvées alors il te demandera de confirmer.

    Ok ?
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  7. #7
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    Merci pour ton aide, mais en fait ca fait toujours la même chose, ça ferme que les classeurs par contre l'application reste toujours ouverte.
    Peut être je l'ai pas mis la ou il faut. Je l'ai mis dans thiswoorbook, est ce que c'est bien la ou il faut le mettre?

  8. #8
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Citation Envoyé par decoalaa Voir le message
    Merci pour ton aide, mais en fait ca fait toujours la même chose, ça ferme que les classeurs par contre l'application reste toujours ouverte.
    Peut être je l'ai pas mis la ou il faut. Je l'ai mis dans thiswoorbook, est ce que c'est bien la ou il faut le mettre?
    Regarde ce que j'ai écrit plus haut.

    tu peux mettre ceci dans un module de ton classeur concerné
    NB : J'ai aussi E-03 (excel 2003) et ce code fonctionne parfaitement chez moi.
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  9. #9
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    C'est bizarre, ça marche pas sur le mien.
    Peut être c'est parce que j'utilise mon fichier excel dans une autre application, donc peut être quand je fait application.Quit , il sait pas de quel application je lui parle .

  10. #10
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Citation Envoyé par decoalaa Voir le message
    C'est bizarre, ça marche pas sur le mien.
    Peut être c'est parce que j'utilise mon fichier excel dans une autre application, donc peut être quand je fait application.Quit , il sait pas de quel application je lui parle .
    Voilà le genre d'info qu'il aurait fallu dévoiler plus tot.

    Tu peux expliquer ?

    car si tu mets le code que j'ai dit où j'ai dit dans ton classeurs excel et que tu ouvre par 'excel et que tu l'exécutes, résultats garantis.
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  11. #11
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    en fait je travail dans un serveur d'entreprise et mon fichier Excel me permet de récupérer des donnes de ce serveur grâce a une macro.La macro exécute une application qui va dans la base de données et récupérer ce qu'on cherche.

  12. #12
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Citation Envoyé par decoalaa Voir le message
    en fait je travail dans un serveur d'entreprise
    Bwa. Il doit faire chaud et noir la dedans.

    Sans déconner, je ne vois pas ce que cela change.

    As-tu essayé d'ouvir le fichier via la voie normale d'excel puis exécuté le code pour ce qui se passe. ?
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  13. #13
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    Franchement j'ai tout essayé mais y a rien qui marche, je sais pas pourquoi.
    Merci quand même pour ton aide

  14. #14
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    J'aimerais que tu essaie ce que j'ai proposé dans ma première réponse, dans un autre classeur par exemple, en respectant bien que la place du code est dans un module et que tu vois si cela fonctionne. cela devrait.

    Ensuite, tu ouvres via excel le fameux fichier, tu mets le meme code au même endroit et puis tu testes.

    j'attends ton résultat.
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  15. #15
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    Je comprend pas trop ce que tu veux dire par cela :en respectant bien que la place du code est dans un module, je vois pas ce que c'est les modules dont tu parle, je suis pas tres fort en Excel

  16. #16
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Salut,

    quand je parle de module, ce n'est pas dans excel mais dans VBA, le sujet qui nous concerne.

    Si tu ouvres VBA (<Alt<+<F11> depuis la fen^tre excel, tu vois normallement la décomposition de ton projet dans la partie gauche de ton écran.

    Regarde l'exemple dans la miniature jointe.

    Le code doit être dans un Module sous le groupe module.
    Dans mon exemple il y a 2 modules.
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  17. #17
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    C'est bon j'ai trouvé une solution pour mon probleme.
    Merci a tous ceux qui m'ont répondu.

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

Discussions similaires

  1. Ouvrir puis fermer un fichier Excel
    Par ANOVA dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 14/09/2020, 10h23
  2. Réponses: 3
    Dernier message: 15/02/2011, 19h46
  3. Fermer un fichier Excel sans sauvegarde
    Par Toad08 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 27/03/2008, 21h03
  4. fermer un fichier excel sans sauvegarder
    Par scons dans le forum VBA Access
    Réponses: 10
    Dernier message: 25/02/2008, 15h22
  5. {VBA Excel}Ouvrir copier et fermer plusieurs fichiers excel
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 25
    Dernier message: 26/06/2007, 09h52

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