Suite à la création d’une macro celle-ci m’ouvre un fichier et me fait certaine modification une fois le fichier visionner je souhaiterai pouvoir fermer celui-ci sans aucune prise en compte de ces modifications comment puis-je passer outre la demande de confirmation de sauvegarder mon fichier ou pas y a t-il une option qui doit être mis dans ma macro pour forcer a non la sauvegarde a chaque fois.
Merci pour l’info mais je ne sais pas comment mettre le paramètre dans mon code a quel endroit juste après le Sub ou à la fin un ptit exemple serait supers??
Je suis désolé je fais mais premier pas dans ce language de programmation
D’après la manière dont tu as rédigé ton message tu demandais quelle option utiliser :
J’en avais conclu que tu avais déjà dans ta macro l’instruction pour quitter le programme.
A la fin de ta macro, tu ajoutes la ligne
ActiveWorkbook.Close false
c’est l’option false qui évite que la question soit posée
Par contre ça marche bien mais il y a encore un ptit point à régler.
Je reprends la description de ma procédure car je penses avoir oublier une petite chose primordiale pour réaliser mon automatisation de mon application (désolé je débute dans ce genre de développement).
1/Sur mon bureau j’ai créer un raccourci qui fait appel à un fichier excel à l’intérieur de mon fichier excel j’ai créer une feuil qui contient l’ouverture de ma macro avec l’option Private Sub Workbook_Open() ça marche parfaitement.
2/Sur déclenchement de mon raccourci (double clic) une première fenêtre s’ouvre et exécute ma macro celle-ci ouvre une nouvelle fenêtre qui contient un document excel la macro me met à jour la taille de la Police le format de la police la largeur de colonne…etc de mon document.
3/Quand la macro à fini la première fenêtre excel ce trouve fermée automatiquement par les options suivantes:
ThisWorkbook.Saved = True
ThisWorkbook.Close
Le fonctionnement est parfait.
4/Par contre la seconde fenêtre ouverte par la macro et qui contient mon document à la fermeture celle-ci me demande toujours de sauvegarder mes modifications normale puisqu’il y a eu des mises à jour à l’intérieur .
En conclusion je souhaiterai pouvoir fermer cette dernière fenêtre à chaque fois sans sauvegarde donc toujours répondre implicitement non à la question "Voulez-vous enregistrer les modifications apportées à ‘MonFichier’? es-ce possible de faire ceci???
Avant de fermer ton classeur qui contient la macro, tu peux lui demander de fermer l’autre
workbooks(“mon_autre_classeur”).Close false
Edit : toujours pareil : false pour ne pas sauvegarder
Par contre, si tu veux sauvegarder sans que la question te soit posée, tu mets true
Edité le 11/01/2009 à 13:20
Je n’y arrive pas il me demande à chaque fois si je souhaite sauvegarder ou pas avant de fermer mon fichier.
Quand je mets Workbooks(“D:\repertoire\monfichier\document_xls”).Close False
Pour info
Le classeur qui contient ma macro lui est bien fermé automatiquement mais le second me demande toujours "Voulez-vous enregistrer les modifications apportées à ‘D:\repertoire\monfichier\document_xls’? et moi je souhaite fermer sans avoir ce message et sans sauvegarde.
Je te donne les dernières commandes passées de ma macro:
RE
J’ai trouvé pourquoi ça ne fonctionné pas j’ai mis le chemin D:… et il faut mettre uniquement le nom du classeur comme indiqué dans ton message donc la commande fonctionne parfaitement.
Par contre la fermeture du document ce fait automatiquement et c’est pas tout à fait ce que je souhaite j’aimerai fermer le classeur manuellement mais ne pas avoir le message ==> Voulez-vous enregistrer les modifications apportées à ‘D:\repertoire\monfichier\document_xls’? donc forcer automatiquement la réponse à non
Il faut alors que tu écrives une macro dans le classeur que tu souhaites fermer manuellement, et l’associes à l’évènement Workbook_BeforeClose
Edité le 11/01/2009 à 17:39
1/Déclenchement de ma macro dans classeur1
2/Ouverture d’un classeur2 qui contient ma macro (Workbook_BeforeClose)
3/Ouverture de mon document à partir du classeur2
Si c’est ca comment définir l’ouverture de mon document à partir du classeur2
et comment déclenché ma seconde macro à partir du classeur2???
1/clic sur l’icone
2/ouverture du classeur 1 -> activation de la macro Worbook_open
actions de la macro :
->> 3/ouverture du classeur 2
->> 4/travail de mise en forme sur le classeur 2
->> 5/fermeture du classeur 1 -> le classeur 2 devient actif
6/travail manuel sur le classeur 2
7/A la fermeture du classeur ->> activation de workbook_close
actions de la macro :
–> 8/positionnement de l’indicateur de sauvegarde
–> 9/fermeture du classeur, ou fermeture de l’application, selon ton besoin
Premièrement merci pour ton aide
Mais j’ai un soucis au niveau du point 7 je ne sais plus ou pas comment activer le workbook_close
aurais tu un ptit exemple car je suis perdus
C’est la même chose que workbook_open, ça s’active au même endroit.
Par contre, je n’ai pas excel sous la main pour vérifier en ce moment ; peut être que l’appellation exacte n’est pas worbook_close.
En tout cas, ça doit y ressembler fortement
Ecoute je suis dans le brouillard j’essaye désespérément de mettre en pratique ce que tu me dis mais rien à faire je narrive pas à déclencher ma macro à la fermeture de ma fenêtre comme tu me la mis dans ton message d’hier .
Message d’hier:
7/A la fermeture du classeur ->> activation de workbook_close
actions de la macro :
–> 8/positionnement de l’indicateur de sauvegarde
–> 9/fermeture du classeur, ou fermeture de l’application, selon ton besoin
Je vais essayer dexpliquer ce que je fais :
1/Exécution de mon raccourci
2/Activation de ma macro1 à partir dune fenêtre1 (workbook_open) qui me met en forme un fichier nommé Fic1 (Police,taille…etc)
3/Le fichier Fic1 souvre dans une fenêtre2 la mise en forme seffectue pas de problème elle reste active.
4/La fenêtre1 qui correspond à lexécution de ma macro (point2) ce referme automatiquement pas de problème.
Cest à partir du prochain point ou jai un gros souci
5/Je narrive pas à déclencher la macro qui doit me permettre de fermer lapplication (Excel) sans avoir aucune demande de sauvegarde.
Jai créé une macro de ce type :
Sub Workbook_close()
’
’ Macro enregistrée le 12/01/2009 par
’
Cette macro jaimerai lactiver au moment ou je ferme manuellement le fichier du point3.
Comme tu le dis je dois utiliser le même procédé que Workbook_open du point1 mais je ne sais pas comment faire
Avec Application.Quit, tu ne fermes pas le fichier, tu fermes l’application (Excel).
Bien sûr, Excel va fermer avant le dernier classeur ouvert, mais comme tu n’as rien précisé, il va te demander avant si tu veux le sauvegarder.
La première chose est donc de savoir ce que tu veux fermer
le classeur ? (en gardant excel ouvert)
l’application ?
Pour fermer le classeur uniquement, c’est identique à ce que tu as fait dans ta première macro.
Pour fermer l’application, il faut d’abord positionner l’indicateur de sauvegarde du classeur
(ThisWorkbook.Saved = True)
puis fermer l’application
(Application.Quit)
Inutile de remettre Application.DisplayAlerts = False en dernière ligne :
d’une part, je pense que c’est true qui serait logique à cet endroit, d’autre part la ligne ne sera jamais exécutée puisque tu auras quitté l’application à la ligne précédente.