[Writer] Fermer un document

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur: Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !

[Writer] Fermer un document

Messagepar zabdoul60460 » 14 Août 2019 08:31

Bonjour,
A la fin de l'exécution de l'une de mes macros, je souhaite fermer le document Write sans avoir le fenêtre dialogue d'enregistrement d'un document modifié (Le document ... a été modifié, souhaitez-vous enregistrer les modifications apportées - Enregistrer - Ignorer - Annuler).

J'ai tenté plusieurs manipulations sans succés.

1/ J'ai associé une macro à l'évenement 'Le document va être fermé'.
Code : Tout sélectionner   AgrandirRéduire
sub Fermeture
ThisComponent.setModified(False)
end sub


Je n'ai plus le dialogue mais le document ne se ferme pas automatiquement.

2/ J'ai créé une autre macro, qui cette fois n'est pas associé à un évement mais qui s'exécute à la fin de mon code

Code : Tout sélectionner   AgrandirRéduire
Sub CloseDoc
   on error goto err
      document = ThisComponent.CurrentController.Frame
      
      Globalscope.BasicLibraries.loadLibrary("Tools")
      oFrame = ThisComponent.CurrentController.getFrame()
   
      ThisComponent.removePrintJobListener(printListener)
      
      ThisComponent.setModified(false)
      DisposeDocument(ThisComponent)
   err:
End Sub


Pourriez-vous m'aider à trouver une solution qui ferme automatiquement le document sans aucun message.

Vous remerciant par avance.
Dernière édition par Oukcha le 14 Août 2019 08:58, édité 1 fois.
Raison: TO:"Femer un document Writer via une macro" / Titre corrigé et balisé suite à déplacement depuis 'Traitement de textes'
Ooo 4.1.6
Mac Os et Windows
zabdoul60460
Fraîchement OOthentifié
 
Message(s) : 2
Inscrit le : 14 Août 2019 08:15

Re: [Writer] Fermer un document

Messagepar Jeff » 14 Août 2019 09:15

Bonjour et bienvenue,

Je ne maîtrise pas les macros, mais ce sujet a déjà été abordé sur le forum, voir :
search.php?st=0&sk=t&sd=d&sr=posts&keywords=writer%2Bferm%2A&fid%5B%5D=8&fid%5B%5D=15&sf=titleonly

Je pense plus particulièrement à :
viewtopic.php?f=8&t=25469&p=139234&hilit=fermer+document#p139234

A +
À lire avant tout !

Pour télécharger Apache OpenOffice

AOO 4.1.6 sur Debian Stable i586 10 (buster) et sur Win 10 pro x64
Jeff
GourOOu
GourOOu
 
Message(s) : 8097
Inscrit le : 18 Sep 2006 10:40
Localisation : France

Re: [Writer] Fermer un document

Messagepar OOotremer971 » 14 Août 2019 10:36

Bonjour,

Code : Tout sélectionner   AgrandirRéduire
Sub FermerDocument
ThisComponent.setModified(False)
on Error Resume Next
Thiscomponent.close(True)
On Error GoTo 0
End Sub


Attention ce bout de code n'enregistre pas le fichier, il le ferme sans sommation. Il faudrait ajouter :
Code : Tout sélectionner   AgrandirRéduire
Thiscomponent.Store


A+
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Ubuntu
OpenSuse Leap
Avatar de l’utilisateur
OOotremer971
HédOOniste
HédOOniste
 
Message(s) : 2000
Inscrit le : 16 Avr 2010 14:31

Re: [Writer] Fermer un document

Messagepar zabdoul60460 » 14 Août 2019 15:08

Bonjour,

En utilisant le code proposé :

Code : Tout sélectionner   AgrandirRéduire
Sub FermerDocument
ThisComponent.setModified(False)
on Error Resume Next
Thiscomponent.close(True)
On Error GoTo 0
End Sub


Le document se ferme bien mais j'ai la fenêtre Ooo 'Récupération de document Ooo' qui apparait avec aucun document dans la liste.
Lorsque je clique sur OK, Ooo se relance.
Je pense que l'instruction close génére cette erreur mais je ne sais pas comment la contourner.
Merci par avance pour votre aide.
Ooo 4.1.6
Mac Os et Windows
zabdoul60460
Fraîchement OOthentifié
 
Message(s) : 2
Inscrit le : 14 Août 2019 08:15

Re: [Writer] Fermer un document

Messagepar Dude » 14 Août 2019 16:10

Salut,

Code : Tout sélectionner   AgrandirRéduire
      DisposeDocument(ThisComponent)

D'où sort cette fonction ?
C'est la propriété .dispose qui faut utiliser.
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 20775
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

Re: [Writer] Fermer un document

Messagepar OOotremer971 » 14 Août 2019 16:28

zabdoul60460 a écrit:Le document se ferme bien mais j'ai la fenêtre Ooo 'Récupération de document Ooo' qui apparait avec aucun document dans la liste.

je ne reproduis pas avec ma configuration. Est-ce que tu peux tester ce fichier en cliquant sur le bouton au milieu de la page ? :
Pièces jointes
FermerDocument.odt
(11.27 Kio) Téléchargé 3 fois
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Ubuntu
OpenSuse Leap
Avatar de l’utilisateur
OOotremer971
HédOOniste
HédOOniste
 
Message(s) : 2000
Inscrit le : 16 Avr 2010 14:31

Re: [Writer] Fermer un document

Messagepar marhra » 17 Août 2019 08:36

Bonjour,

Si le but est d'enregistrer puis fermer, tu peux aussi essayer :
Code : Tout sélectionner   AgrandirRéduire
Sub FermerDocument
        ThisComponent.Store(True)    'Même action que le bouton Enregistrer de la barre d'outils
   on Error Resume Next
   Thiscomponent.close(True)
   On Error GoTo 0                '
End Sub


Ça fonctionne très bien avec Calc, pourquoi pas avec Writer ?
LibreOffice 6.0.3.2 sur Ubuntu 16.04 LTS
LibreOffice 6.3.0 sur MacOS X à la maison
Avatar de l’utilisateur
marhra
Fraîchement OOthentifié
 
Message(s) : 8
Inscrit le : 06 Jan 2010 18:53


Retour vers Macros et API

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 6 invité(s)