| ||||||||
Astucien ![]() | Bonjour à tous, Comme indiqué dans le titre, je cherche pourquoi certains fichiers Excel, lorsque je les ouvre et referme aussitôt (c à d, sans y apporter aucune modification), me demandent si je veux enregistrer ou pas, alors que d'autres ne le demandent pas! Donc, quelle serait l'option à activer/désactiver? J'espère avoir été assez clair dans mes explications et pour la plupart d'entre vous, cette question devrait trouver réponse facilement. Merci d'avance. | |||||||
Publicité | ||||||||
| ||||||||
![]() ![]() | Bonjour Sous réserve, car je suis loin d'en être sûr. J'ai le même phénomène. Cela se produit avec des fichiers contenant des macros, créés avec des versions d'Excel antérieures à 2007. Comme cela ne me gène pas, je n'ai jamais pris le temps de rechercher pourquoi afin de corriger ... probablement une question de compatibilité. @ + | |||||||
Astucien ![]() |
Dans mon cas, tous ces fichiers ont été créés avec Excel 2007, voire 2010. Ce serait donc l'explication. Et comme toi, ce n'est guère important, c'était juste pour savoir et éventuellement y remédier d'une simple case à cocher ou décocher. Merci de ta réponse. Bonne journée. | |||||||
Astucien ![]() | Bonjour, J'ai le même phénomène avec Excel 2010 et également un Excel 2013 les deux sur W7. Mais je n'utilise pas de macros. Pas plus gênant que cela mais je m'éviterais volontiers ce clic supplémentaire. | |||||||
Astucien ![]() | erbo01 a écrit : Bonjour erbo01, Quand tu dis le même problème, veux-tu dire que comme moi, ce phénomène se produit sur certains fichiers seulement? Comme pour toi, pas très (trop) gênant, mais je m'en passerais volontiers! | |||||||
![]() ![]() | Bonjour, C'est que quelque chose a été modifié dès l'ouverture du fichier... Cela peut provenir de macro ou de formules... Si cela gêne, tu peux éventuellement l'éviter avec une procédure dans le module ThisWorkbook : Private Sub Workbook_Open() C'est le passage de ce paramètre à False dès l'ouverture qui provoque la demande d'enregistrement même si tu n'as touché à rien... Cordialement. | |||||||
![]() ![]() |
Merci Ferrand Cela ne me gênait pas outre mesure et je m'en accommodais sans y penser. Mais puisque tu apportes la solution, je l'ai intégrée et ça marche, bien évidemment. | |||||||
Astucien ![]() | Bonjour Ferrand, Là, on monte d'un cran eu égard à mes connaissances et je ne sais pas comment et où trouver le module ThisWorkbook. Une recherche sur le net, m'a donné Alt + F11, mais ça s'arrête là. C'est juste pour apprendre. Merci d'avance. | |||||||
Astucien ![]() | Comme Artefact0 je suis largué avec "thisworkbook" si vous pouviez nous donner la marche précise à suivre... Merci bien | |||||||
![]() ![]() |
Je suis sous Excel 2007, donc peut-être à adapter selon les versions. Aller dans l'onglet "Développeur". Dans la partie "Code" (à gauche chez moi), cliquer sur "Visual Basic". Une fenêtre s'ouvre. Double cliquer sur Thisworkbook. Insérer à droite la procédure fournie par ferrand. Fermer le tout. C'est fait ! | |||||||
Astucien ![]() | Purée, ça fait une heure que je cherche cet onglet "Développeur", sans succès!! Bien évidemment, j'ai aussi essayé de le trouver en ouvrant les autres onglets un par un, mais pas mieux!! | |||||||
![]() ![]() | Salut Poussebois ! Je me dis toujours que je devrais le faire sur quelques fichiers qu'il m'arrive d'ouvrir fréquemment pour consultation visuelle avant de refermer...
Artefact0, erbo01 : Quand vous faîtes Alt+F11, vous ouvrez l'éditeur VBA. Une fois dans l'éditeur (dont vous n'avez certainement pas encore eu loisir de modifier l'apparence), vous verrez un volet d'exploration à gauche. Il ne devrait y avoir que cela car c'est le seul qui est affiché par défaut à l'origine. Si toutefois il n'y avait pas ce volet : menu Affichage, clic sur Explorateur de projets. Ce volet affiche en haut : VBAProject suivi entre parenthèses du nom du classeur. Il y en aura plusieurs si plusieurs classeurs sont ouverts. Si l'arborescence n'est pas visible, cliquer sur les + à gauche pour tout déplier (de la même façon que dans l'Explorateur). Si le classeur ne contient pas de macros ou autres éléments ajoutés, VBAProject ne contiendra qu'un seul dossier : Microsoft Excel Objets, lequel contiendra les objets afférents au classeur ouvert. On verra donc apparaître un objet par feuille du classeur et en queue de liste un objet nommé ThisWorkbook. Ces objets sont des Modules, c'est dire des feuilles se présentant comme une page blanche, destinées à accueillir du texte correspondant à des commandes qui pourront être exécutées, texte appelé code, organisé en procédures (autrement appelées macros). Il peut y avoir d'autres objets si l'on a créé un formulaire utilisateur (Userform) ou si l'on a des macros ordinaires dans ce classeur. A la suite des objets Excel on pourra donc avoir un dossier Feuilles (contenant les Userforms) et un dossier Modules (pour les modules Standard) [voire éventuellement un dossier Modules de classe, si l'on a procédé à des créations de classes d'objets personnalisés... mais nous n'en sommes pas encore là !!!) Lorsqu'on crée une macro, qu'on lancera dans des conditions habituelles avec un bouton, un raccourci, la boîte macros, etc., on la place normalement dans un Module standard (Insertion > Module pour en insérer un). Les modules que l'on voit en ouvrant l'éditeur VBA dans un classeur qui ne contient pas de macros ou autres, sont bien des modules mais des modules de classes particuliers, en ce sens qu'ils sont prédéfinis, déjà attachés à un objet existant dans le classeur (il sont prêt à l'emploi sans qu'on ait besoin d'une initialisation quelconque pour les faire fonctionner). Un double-clic sur ThisWorkbook va ouvrir le module attaché au classeur. Ce module sert principalement à programmer ce que l'on nomme des procédures évènementielles (macros qui se déclencheront automatiquement lorsque survient un évènement programmable affectant le classeur). De la même façon les modules des feuilles accueilleront des procédures d'évènements survenant sur la feuille correspondante. Le module ThisWorkbook ouvert, on note qu'il s'agit d'une page blanche, surmontée de deux listes déroulantes : à gauche apparaît (Général) et à droite (Déclarations). Déroulons la liste de gauche : sous (Général), on voit qu'il y a aussi : Workbook. Un clic sur Workbook et dans la feuille s'inscrit une déclaration de procédure : Private Sub Workbook_Open suivie d'une ligne blanche suivie de End Sub. Il s'agit de la procédure d'évènement par défaut d'un classeur, et la liste déroulante de gauche affiche maintenant Open, procédure dont on a activé la déclaration. Si on déroule cette liste, on verra la liste de tous les évènements programmables du classeur, un clic dans cette liste se traduira par l'inscription de la déclaration de procédure correspondante, de la même façon que pour Open. Si on clique sur un évènement déjà déclaré, il n'y aura pas de 2e inscription (il ne peut y qu'une procédure par évènement) mais le curseur ira se positionner sur la déclaration. Revenons à Open : entre les deux instructions composant la déclaration : Private Sub... et End Sub, on va pouvoir mettre le code que l'on exécuter automatiquement à chaque ouverture du classeur. Au cas particulier, la ligne de commande indiquée... Si on colle la macro globalement dans ce module, cela fonctionnera de la même façon (si pas d'erreur de copie), mais ci-dessus la méthode régulière pour insérer une macro évènementielle. Il est toujours préférable de laisser VBA inscrire les déclarations, cela peut éviter bien des erreurs. Cordialement. | |||||||
Astucien ![]() | Bon, j'ai trouvé "Développeur" en fouillant dans les options. Ça n'était pas coché.
Et maintenant, il est bien là!
Je vais aussi regarder la longue réponse de ferrand, mais pour tout ça il va me falloir un peu de temps, alors ne vous étonnez pas si je ne réponds pas ce soir!
Merci encore de votre aide. | |||||||
Astucien ![]() | Bon, j'ai réussi à atteindre le volet VBA Project et c'est tout. Mais, à l'inverse de la capture de poussebois, je ne peux développer et par conséquent, nulle part, je ne vois "ThisWorkbook". Si je clique sur "VBAProject" (à tout hasard Voilà, c'est tout pour l'instant, je dois m'absenter un moment. A + tard. | |||||||
![]() ![]() | A qui appartient le fichier donc ? Si verrouillé, quelqu'un l'a verrouillé ! | |||||||
Astucien ![]() | Bonjour, Le fichier m'appartient (c'est quelque chose de très basique qui me sert à gérer les dépenses d'une personne âgée), c'est moi qui l'ai créé et personne d'autre n'y touche ou n'y a touché! Par contre, on peut lire qu'il est "partagé" ce fichier. Ne me demande pas pourquoi!! Cela m'a interpellé et du coup, je suis allé dans l’onglet "Révision" et j'ai décoché la case "Permettre une modification..." Puis, vérification et bingo, le fichier se ferme maintenant sans la demande d'enregistrement. Dans mon cas, plus besoin de me gaver de Doliprane à cause des VBA, macros ou autres ThisWorkbook! Dossier réglé! Je marque comme "résolu" et je vous dis merci à tous. Une fois de plus, PCA m'a tiré d'affaire, même si dans ce cas précis il n'y avait pas mort d'homme. Bonne fin de semaine. | |||||||
Astucien ![]() | Bonjour j'ouvre mon ordi à l'instant et je vois vos réponses. Merci beaucoup d'avoir pris le temps pour ces tutos. J'étudie tout cela et m'en vais essayer. | |||||||
Astucien ![]() | Ok j'ai ouvert un classeur, n'importe lequel, et trouvé : Private Sub Workbook_Open() dans "Général" -> Workbook Si j'a bien compris je mets "Me.Saved = True" entre les deux lignes? Question : cela va-t-il s'appliquer à tout les classeurs passés et à venir ou seulement au classeur modifié (ce qui ne servirait pas P.S. Formidables tes explications Ferrand
| |||||||
Astucien ![]() |
Je ne sais pas si c'est à moi ou à erbo01, que tu t'adresses, mais si c'est à moi, je ne pige pas ce que tu veux dire. Sinon juste pour info, depuis que j'ai décoché la case "Permettre..." dont je parle plus haut, j'ai accès à ThisWorkbook. Bon app' | |||||||
![]() ![]() | Bonjour à tous, erbo01: cette méthode ne s'applique qu'au classeur dans lequel tu mets cette macro, très légère et vite collée. Mais nul besoin que cela s'applique systématiquement, ce phénomène ne survient qu'avec un nombre relativement limité de classeurs (il faut des conditions !) et cela n'est vraiment gênant que si tu es amené à ouvrir et fermer sans intervention de façon fréquente... Cordialement. | |||||||
Astucien ![]() | Merci Ferrand En fait je dois fréquemment consulter certains documents (au travail) afin de savoir ce qui à été déjà fait et chaque fois : "voulez -vous enregistrer"... clic... mais comme déjà dit c'est pas plus grave que ça, ton intervention et celle des autres intervenant nous aurons, avec Artefact0 je pense, appris quelques rudiments supplémentaires. Bonne soirée à tous
| |||||||
Astucien ![]() | Debrief a écrit : Très bien, c'est bon à savoir. Merci. | |||||||
Astucien ![]() | erbo01 a écrit : Je ne peux qu'approuver! | |||||||
Publicité | ||||||||
| ||||||||
|
Les bons plans du moment PC Astuces | Tous les Bons Plans | |||||||||||||||
|