[Résolu][Writer]Trouver 1 document .odt particulier

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 !
zutix
Membre lOOyal
Membre lOOyal
Messages : 37
Inscription : 01 déc. 2017 13:35

[Résolu][Writer]Trouver 1 document .odt particulier

Message par zutix »


La modération vous a écrit: Veuillez relire la Règle du forum n°10

Contexte :
DOC1 est un document writer constitué de pages « tableau » (1 tableau par page, chaque tableau occupe toute sa page).
La macro basic est lancée depuis DOC1.
Elle ouvre un fichier contenant une page « tableau » modèle, DOC2.
Elle personnalise cette page (no de page, nom du tableau adéquats) avant de l’insérer dans DOC1.
DOC3 est un document ouvert – ou pas - qui contient uniquement un cadre (rempli par un histogramme par exemple)

Objectif :
insérer le cadre - initialement dans DOC3 - dans la page « tableau » DOC2, - avant de copier cette dernière dans DOC1.
Mais :
- le nom du fichier, contenant le cadre, DOC3 est inconnu,
- le nombre de documents writer et libreoffice ouverts est inconnu,
- le fichier contenant le cadre peut ne pas être ouvert (oubli).

Comment peut faire la macro basic pour trouver / identifier DOC3, afin de pouvoir se positionner dedans, si DOC3 est ouvert ?
Comment savoir si DOC3 n’est pas ouvert pour réclamer son ouverture ?


D’avance merci de votre réponse.
Dernière modification par Oukcha le 10 févr. 2018 09:36, modifié 1 fois.
Raison : Balisage
LibreOffice Version: 4.3.7.2.lin04 par exemple mais pas seulement

(Cette version est encore celle que j'utilise et je n'ai pas la possibilité de la changer. Merci de votre compréhension)
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: [Writer]Trouver 1 document .odt particulier

Message par Hubert Lambert »

Bonjour,
zutix a écrit :- le nom du fichier, contenant le cadre, DOC3 est inconnu,
[...]
Comment savoir si DOC3 n’est pas ouvert pour réclamer son ouverture ? [/b]
Ouvrir un document sans connaître son nom, tu l'auras deviné, n'est possible que pour un très bon prestidigitateur ;-).
Pour le reste, le code suivant permet de parcourir l'ensemble des documents ouverts, à charge pour toi d'y chercher l'objet qui t'intéresse :

Code : Tout sélectionner

sub main
	components = stardesktop.Components
	for each component in components
		' ici la variable 'component' correspondra à 'thiscomponent'
		' pour chaque document ouvert
	next component
end sub
Cordialement.
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
zutix
Membre lOOyal
Membre lOOyal
Messages : 37
Inscription : 01 déc. 2017 13:35

Re: [Writer]Trouver 1 document .odt particulier

Message par zutix »

Bonjour et merci pour ta réponse.

Grâce à elle et en utilisant :
component.Identifier
component.title
component.wordCount
il devrait être possible d'aboutir à quelque chose.

(Note : les inconnus de mon message initial concerne évidemment la macro et non son utilisateur)

Que je m'en sorte ou pas, j'essaierais de déposer un message pour t'informer mais probablement pas dans l'immédiat.
Merci en tous cas.
LibreOffice Version: 4.3.7.2.lin04 par exemple mais pas seulement

(Cette version est encore celle que j'utilise et je n'ai pas la possibilité de la changer. Merci de votre compréhension)
Avatar de l’utilisateur
rollmops
PassiOOnné
PassiOOnné
Messages : 669
Inscription : 20 déc. 2017 14:45

Re: [Writer]Trouver 1 document .odt particulier

Message par rollmops »

Bonjour,

Attention, le code ne fonctionnera que si l'ODT est ouvert par OpenOffice.
Or un ODT peut aussi être ouvert par une autre application comme Word 2016 par exemple.
OpenOffice 4.1.15 - Windows 10
zutix
Membre lOOyal
Membre lOOyal
Messages : 37
Inscription : 01 déc. 2017 13:35

Re: [Writer]Trouver 1 document .odt particulier

Message par zutix »

Merci pour la précision concernant l'ouverture. Il en sera tenu compte dans la notice d'accompagnement.

Par ailleurs, il ne m'est pas encore possible de clore le sujet car je n'ai toujours pas fait cette partie de macro.

Merci et bonnes fêtes à tous.
LibreOffice Version: 4.3.7.2.lin04 par exemple mais pas seulement

(Cette version est encore celle que j'utilise et je n'ai pas la possibilité de la changer. Merci de votre compréhension)
Avatar de l’utilisateur
rollmops
PassiOOnné
PassiOOnné
Messages : 669
Inscription : 20 déc. 2017 14:45

Re: [Writer]Trouver 1 document .odt particulier

Message par rollmops »

Re,
Le plus simple est de tester la présence du fichier qui verrouille le document.
Par exemple, AOO créé un .~lock. suivi du nom de l'ODT qui est ouvert.
Il suffit donc d'utiliser FileExists du Basic.
OpenOffice 4.1.15 - Windows 10
zutix
Membre lOOyal
Membre lOOyal
Messages : 37
Inscription : 01 déc. 2017 13:35

Re: [Writer]Trouver 1 document .odt particulier

Message par zutix »

Merci de vos réponses.
Sujet clos.
LibreOffice Version: 4.3.7.2.lin04 par exemple mais pas seulement

(Cette version est encore celle que j'utilise et je n'ai pas la possibilité de la changer. Merci de votre compréhension)