[HS][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 !
zabdoul60460
Fraîchement OOthentifié
Messages : 4
Inscription : 14 août 2019 07:15

[HS][Writer] Fermer un document

Message par zabdoul60460 »

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

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

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 modification par zabdoul60460 le 27 août 2019 17:35, modifié 2 fois.
Ooo 4.1.6
Mac Os et Windows
Jeff
GourOOu
GourOOu
Messages : 9628
Inscription : 18 sept. 2006 09:40
Localisation : France

Re: [Writer] Fermer un document

Message par Jeff »

Bonjour et bienvenue,

Je ne maîtrise pas les macros, mais ce sujet a déjà été abordé sur le forum, voir :
https://forum.openoffice.org/fr/forum/s ... =titleonly

Je pense plus particulièrement à :
https://forum.openoffice.org/fr/forum/v ... nt#p139234

A +
Avatar de l’utilisateur
OOotremer971
ManitOOu
ManitOOu
Messages : 2744
Inscription : 16 avr. 2010 13:31

Re: [Writer] Fermer un document

Message par OOotremer971 »

Bonjour,

Code : Tout sélectionner

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

Thiscomponent.Store
A+
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10 et 11
zabdoul60460
Fraîchement OOthentifié
Messages : 4
Inscription : 14 août 2019 07:15

Re: [Writer] Fermer un document

Message par zabdoul60460 »

Bonjour,

En utilisant le code proposé :

Code : Tout sélectionner

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
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25173
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Writer] Fermer un document

Message par Dude »

Salut,

Code : Tout sélectionner

		DisposeDocument(ThisComponent)
D'où sort cette fonction ?
C'est la propriété .dispose qui faut utiliser.
Avatar de l’utilisateur
OOotremer971
ManitOOu
ManitOOu
Messages : 2744
Inscription : 16 avr. 2010 13:31

Re: [Writer] Fermer un document

Message par OOotremer971 »

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 ? :
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10 et 11
Avatar de l’utilisateur
marhra
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 06 janv. 2010 17:53
Localisation : Ardennes

Re: [Writer] Fermer un document

Message par marhra »

Bonjour,

Si le but est d'enregistrer puis fermer, tu peux aussi essayer :

Code : Tout sélectionner

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 ou Windows 10 Pro au travail
LibreOffice 6.3.0 sur MacOS Mojave à la maison
zabdoul60460
Fraîchement OOthentifié
Messages : 4
Inscription : 14 août 2019 07:15

Re: [Writer] Fermer un document

Message par zabdoul60460 »

Bonjour à tous,
Désolée pour cette réponse tardive, j'étais en congés ;-)
OOotremer971 j'ai testé ton fichier et effectivement, il se ferme sans erreur !
L'enchainement de mes macros pose peut-être un problème !!!
Donc dans mon contexte , cela n'a pas résolu le problème
Une autre idée ?
Merci pour votre aide.
Sincèrement.
Ooo 4.1.6
Mac Os et Windows
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25173
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Writer] Fermer un document

Message par Dude »

zabdoul60460 a écrit :Donc dans mon contexte , cela n'a pas résolu le problème
Une autre idée ?
Oui, fournis un document exhaustif permettant de comprendre ton contexte.
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12226
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: [Writer] Fermer un document

Message par Bidouille »

Dernière visite le : 28 Août 2019 20:00
30 jours plus tard, la situation n'ayant pas évoluée, je classe donc le fil HS.

Libre à l'auteur de rouvrir sa question, cette fois, en l'accompagnant d'un document.
Néanmoins, il est toujours pénible d'avoir ce type de question qui n'apporte rien à la base de connaissances.