Bonjour,
Bon, comme ça, le sujet à l'air simple, mais il ne l'est pas tant que ça...
Je cherche à fermer un activeX Excel sans enregistrer les modifications si le script plante à un moment ou un autre de son déroulement.
Pour ce faire, j'ai une méthode dans le genre :
Tant qu'aucune modification n'a été apportée au workbook, il n'y a pas de problème, l'activeX excel est fermé correctement, il disparait de la liste des tâches windows. Mais dès lors qu'une modification a été effectuée (dans mon cas, suppression de certaines feuilles innutilisées par la suite de mon script), la fermeture de l'activeX ne fonctionne plus... il passe bien par le code de fermeture, mais l'activeX reste en mémoire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 this._excelApplication.DisplayAlerts = false; if( this._workBook != null ) this._workBook.close( false ); this._excelApplication.Quit(); this._excelApplication.DisplayAlerts = true; this._excelApplication = null; setTimeout( "CollectGarbage()", 1 );
J'ai également tenté de rajouter la valorisation suivante juste avant la fermeture du workbook :
Pour simuler que le workBook n'a pas été modifié, tiré de l'explication
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2this._workBook.Saved = true;
A la page suivante : http://msdn.microsoft.com/en-us/libr...ed(VS.80).aspxYou can set this property to true if you want to close a modified workbook without either saving it or being prompted to save it.
Mais le problème persiste...
Si quelqu'un a une idée à soumettre je serai intéressé à l'entendre
D'avance merci.
Partager