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 :

Fermer un workbook sans enregistrer les modifications via jScript


Sujet :

Macros et VBA Excel

  1. #1
    Membre chevronné Avatar de titouille
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    353
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 353
    Par défaut Fermer un workbook sans enregistrer les modifications via jScript
    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 :

    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 );
    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.

    J'ai également tenté de rajouter la valorisation suivante juste avant la fermeture du workbook :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this._workBook.Saved = true;
    Pour simuler que le workBook n'a pas été modifié, tiré de l'explication

    You can set this property to true if you want to close a modified workbook without either saving it or being prompted to save it.
    A la page suivante : http://msdn.microsoft.com/en-us/libr...ed(VS.80).aspx

    Mais le problème persiste...


    Si quelqu'un a une idée à soumettre je serai intéressé à l'entendre

    D'avance merci.

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Je ne connais rien à jScript mais, si de ton côté tu n'as pas d'erreur d'utilisation de l'activeX, le problème peut se situer à plusieurs endroits
    La condition pour que le code d'exécute : le code est-il exécuté ?
    L'utilisation de this._workBook.Saved = true; -> Dans ce cas je "suppose" que la ligne suivante ne doit pas contenir le paramètre False
    this._workBook.close();
    Enfin, dans VBA, il est conseillé pour toutes les commandes impliquant les ouvertures ou fermetures de fichiers, les affichages, etc. bref, pour tout ce qui sollicite le système, de lui donner le temps de faire ses petites affaires.
    Je testerais donc en ajoutant un DoEvents ici (***) en adaptant la syntaxe qui va bien...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    this._workBook.Saved = true;
    this._workBook.close();
    this._excelApplication.DoEvents '***
    this._excelApplication.Quit();
    Sans filet, juste des idées...
    Bonne chance.

Discussions similaires

  1. Enregistrer les modifications sans confirmation
    Par Ptikir dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/04/2009, 10h23
  2. Fermer un form en enregistrant les modifications
    Par illight dans le forum IHM
    Réponses: 1
    Dernier message: 10/03/2008, 09h50
  3. Comment fermer un classeur sans enregistrer les changements (dans IE) ?
    Par tinftinf dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/08/2007, 13h34
  4. Réponses: 6
    Dernier message: 30/05/2006, 22h41
  5. [DOM] comment enregistrer les modifs?
    Par noobiewan kenobi dans le forum Format d'échange (XML, JSON...)
    Réponses: 26
    Dernier message: 30/07/2004, 10h56

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