activeworkbook.close Sur une Forme :

evilprog

XLDnaute Nouveau
Bonjour à tous!

J'utilise une belle forme stylisé pour lancer une macro afin de quitter excel.

macro du type :

Code:
ActiveWorkbook.Saved = True 'pour ne pas sauvegarder
ActiveWorkbook.Close 'pour quitter le classeur en cours

Je préfère fermer le classeur plutôt que tout Excel car il est possible qu'on utilise d'autre fichier excel en parrallèle.

Le problème c'est qu'en lançant cette macro à partir d'une forme. Excel plante et envoi un rapport d'erreur. J'ai cru comprendre que c'est un bug de la version 2007.

Avez-vous une solution ?


Merci d'avance.

evilprog
++

PS: je suis bien sûr sous excel 2007
 

Pierrot93

XLDnaute Barbatruc
Re : activeworkbook.close Sur une Forme :

Bonsoir

essaye en remplacant tes 2 lignes de code par celles ci :

ferme le classeur sans sauvegarder.
Code:
ActiveWorkbook.Close False

non testé avec une forme, encore moins sous 2007...

bonne soirée
@+
 

jeanpierre

Nous a quitté
Repose en paix
Re : activeworkbook.close Sur une Forme :

Bonsoir evilprog, Pierrot,

"J'utilise une belle forme stylisé pour lancer une macro afin de quitter excel. et la suite de ton message"

Voire l'intérêt d'une telle option ??

A te loire.

Jean-Pierre
 

evilprog

XLDnaute Nouveau
Re : activeworkbook.close Sur une Forme :

Merci Pierrot93 pour ta réponse rapide !

Hélas, Excel 2007 se comporte exactement de la même façon.

Je l'ai lancer directement de VBA et pas de problème... apparement ça vient de la forme :confused:

je peux contourner ça ?

EDIT: @ Jeanpierre : En fait les personnes qui vont utiliser le fichier ne maîtrise rien de l'informatique, donc une belle grosse croix rouge c'est plus facile pour quitter cet mini appli
 

evilprog

XLDnaute Nouveau
Re : activeworkbook.close Sur une Forme :

J'ai essayé... mais à partir d'une forme (à laquelle j'ai affecté la macro) ça ne marche pas...

essai chez toi pour voir et renseigne moi !

Je vous souhaite une bonne soirée !

evilprog
++
 

MJ13

XLDnaute Barbatruc
Re : activeworkbook.close Sur une Forme :

Bonjour à tous.

Bon sur la version 2007, Excel n'aime pas qu'il y ai qu'un seul fichier.
Donc voici une solution pas très esthétique mais elle fonctionne (en fait on ajoute une feuille avant de fermer la feuille). Sinon si un autre fichier est ouvert, cela ne devrait pas planter.

Sinon si on veut fermer Excel, le fichier précédent devrait fonctionner.
 

Pièces jointes

  • Essai_sortie3.zip
    20.3 KB · Affichages: 97

evilprog

XLDnaute Nouveau
Re : activeworkbook.close Sur une Forme :

Rebonjour à tous !

Je m'excuse pour cette petite absence, mais me revoilà.

Alors, j'ai bien regardé ce que vous avez proposez...
Donc pour quitter excel pas de problème ça marche (voir essai_sortie2)

Ca devient embêtant lorsqu'on a d'autre classeur d'ouvert et du coup qui vont se fermer avec.

J'ai un peu étudier la chose, la technique sur 'essai_sortie3' permet en effet de fermer le classeur, mais ça en ouvre un nouveau (l'astuce pour pouvoir fermer est d'en avoir un d'ouvert) et du coup on tourne un peu en rond.

Je vous remercie déjà donc pour ces précieuses réponses, qui hélàs confirme mon problème, excel 2007 ne peut pas fermer un classeur en lançant une macros à partir d'une forme.

J'ai d'ailleur essayé plusieurs choses :

activeworkbook.close
workbooks("nomduclasseur").close
activewindow.close
windows("nomdelafenêtre").close

rien n'y fait...

J'imagine que le problème vient du ".close"
Pour mon fichier j'ai donc abandonné, et viré l'image.

Voilà, si c'est un bug faut-il le signaler ? sont-ils déjà au courant ? Des mise-à-jour sont possibles ?

Sinon bonne fin de semaine, et merci d'avoir passé un peu de temps pour mon problème.

evilprog
++
 

MGU

XLDnaute Nouveau
Re : activeworkbook.close Sur une Forme :

Rebonjour à tous !

Je m'excuse pour cette petite absence, mais me revoilà.

Alors, j'ai bien regardé ce que vous avez proposez...
Donc pour quitter excel pas de problème ça marche (voir essai_sortie2)

Ca devient embêtant lorsqu'on a d'autre classeur d'ouvert et du coup qui vont se fermer avec.

J'ai un peu étudier la chose, la technique sur 'essai_sortie3' permet en effet de fermer le classeur, mais ça en ouvre un nouveau (l'astuce pour pouvoir fermer est d'en avoir un d'ouvert) et du coup on tourne un peu en rond.

Je vous remercie déjà donc pour ces précieuses réponses, qui hélàs confirme mon problème, excel 2007 ne peut pas fermer un classeur en lançant une macros à partir d'une forme.

J'ai d'ailleur essayé plusieurs choses :

activeworkbook.close
workbooks("nomduclasseur").close
activewindow.close
windows("nomdelafenêtre").close

rien n'y fait...

J'imagine que le problème vient du ".close"
Pour mon fichier j'ai donc abandonné, et viré l'image.

Voilà, si c'est un bug faut-il le signaler ? sont-ils déjà au courant ? Des mise-à-jour sont possibles ?

Sinon bonne fin de semaine, et merci d'avoir passé un peu de temps pour mon problème.

evilprog
++

Bonjour,
Il y a effectivement un bug. On peut résoudre le problème en installant la mise à jour Office 2007 Service Pack 2, à télécharger sur le site de Microsoft.
MGU
 

Discussions similaires

Statistiques des forums

Discussions
312 299
Messages
2 086 993
Membres
103 422
dernier inscrit
victus5