[Résolu][Writer] Enregistrement d'objet comme nom fichier

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 !
Dudu38300
Fraîchement OOthentifié
Messages : 5
Inscription : 19 oct. 2016 17:09

[Résolu][Writer] Enregistrement d'objet comme nom fichier

Message par Dudu38300 »

Bonjour,

Je dispose d'un modèle de document qui me sert à établir des rapports pour mon travail. Quelle que soit l'affaire traitée, la première page est identique en terme de présentation. Seul le contenu des 4 champs qui composent le cartouche des références de mon dossier change.

Exemple :

Champ 1 : nom (par ex MARTIN)
Champ 2 : prénom (par ex Pierre)
Champ 3 : ville (par ex LYON)
Champ 4 : numéro de dossier (par ex E25654)

Je souhaiterai créer une macro qui me permettrait, lors de l'enregistrement de mon rapport après rédaction, de nommer automatiquement mon fichier avec les informations contenues dans les champs 1 et 4 de mes références (Nom et n° de dossier).

Ainsi, après avoir établi le rapport du dossier ci-dessus, je voudrait que le fichier se nomme "MARTIN-E25654".

Cela fait des heures que je cherche et je patauge.

Merci pour votre aide.

PS. Ci-joint modèle du document source.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Dudu38300 le 25 oct. 2016 16:08, modifié 9 fois.
Libo 4.1 - Windows 7
Avatar de l’utilisateur
tintin
GourOOu
GourOOu
Messages : 9362
Inscription : 18 juil. 2008 15:29
Localisation : F-Oise + F-Savoie

Re: [Writer] enregistrement auto d'objet comme nom de fichie

Message par tintin »

Bonjour à vous aussi,

Il me semble que c'est votre fichier au format .odt qui vous a été demandé.
Si vous voulez obtenir de l'aide, il faut aider les personnes qui veulent bien vous consacrer du temps.

Comment joindre un fichier

Comment dépersonnaliser un document joint

Cordialement
AOO 4.1.15 et LibO stable 7.6.6 / macOS Intel 13.6.6 Ventura
Adoptium-temurinJDK-jre_1.8.0_402 / Firefox/Safari/Thunderbird /Time Machine+cloneCCC
Tutoriels du forum pour macOS
Pour sauvegarder vos documents c'est ceinture ET bretelles
Dudu38300
Fraîchement OOthentifié
Messages : 5
Inscription : 19 oct. 2016 17:09

Re: [Writer] enregistrement auto d'objet comme nom de fichie

Message par Dudu38300 »

Bonjour,

Désolé pour ces quelques dérapages...

Tout nouveau sur le forum et encore quelques ajustements à avoir. Désolé.

J'ai posté ce matin mon document.

Cordialement.

Bonne journée.
Libo 4.1 - Windows 7
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25175
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Writer] enregistrement auto d'objet comme nom de fichie

Message par Dude »

Salut,

On ne comprend rien à ce que tu veux faire.
Pourquoi joindre un PDF ?
Un modèle de document sous Writer porte l'extension OTT.
Dudu38300
Fraîchement OOthentifié
Messages : 5
Inscription : 19 oct. 2016 17:09

Re: [Writer] enregistrement auto d'objet comme nom de fichie

Message par Dudu38300 »

Bonsoir,

Visiblement le message passe mal...désolé.

Je vais donc reprendre depuis le début en tentant d'être plus clair.

Les agents de mon service rédigent des rapports dont la première page (simplifiée au maximum pour l'exemple) ressemble au fichier "Rapport de contrôle" ci-joint avec extension ".ott"

Comme on peut le voir, cette page de garde porte mention des références du dossier par le renseignement de 3 champs : "Commune", "Désignation de l'établissement" et "n° de dossier" (pour l'exemple respectivement affectés des valeurs LYON, CONSERVATOIRE et 27895).

Mon service compte une vingtaine d'agents et plusieurs dizaines de rapports sont établis chaque jour.
A l'issue de la rédaction, chaque rapport est enregistré avec un nom de fichier qui doit obéir à une charte graphique.
Les erreurs de saisie sur le nom du fichier lors de l'enregistrement (tant sur le contenu que sur la forme) font que la charte n'est pas respectée (avec des conséquences que je n'évoquerai pas ici, ce n'est pas le sujet). Le nom du fichier se doit d'être fiabilisé.

Je sais que les données identifiant le dossier sur la page de garde sont fiables car elles proviennent d'un progiciel et sont importées dans les rapports par fusion.
Je souhaiterai donc que chaque agent n'ait pas à saisir le nom du fichier dans la fenêtre d’enregistrement, mais que celui-ci soit rempli automatiquement à partir des données des champs "Commune", "Désignation de l'établissement" et "n° de dossier" du rapport.

Pour l'exemple pris au début, ma fenêtre d'enregistrement devrait ressembler à la capture d'écran du fichier "Fenêtre d'enregistrement" ci-joint...mais avec un nom de fichier renseigné automatiquement.

J'espère avoir été plus clair.

Merci pour votre patience.

Cordialement.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Dudu38300 le 25 oct. 2016 16:09, modifié 1 fois.
Libo 4.1 - Windows 7
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25175
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Writer] enregistrement auto d'objet comme nom de fichie

Message par Dude »

Voilà quelques trucs et astuces pour te mettre le pied à l'étrier.
Dudu38300 a écrit :mais que celui-ci soit rempli automatiquement à partir des données des champs "Commune", "Désignation de l'établissement" et "n° de dossier" du rapport.
Contrairement à ce que tu expliques, le document fourni ne comporte pas de champs.
La notion de champ est expliqué dans ce tutoriel.
Une fois que tu auras défini ces derniers, tu pourras les récupérer et t'en servir avec l'objet TextField.

Si tu ne souhaites pas aller aussi loin, il est aussi possible de récupérer le contenu d'une cellule de tableau.
Explication dans le Wiki sur les objets TextTable.

Après que l'information soit récupérée, il suffit de passer par la méthode SaveAs sur le document pour sauvegarder avec le nom de ton choix.
joel275
InconditiOOnnel
InconditiOOnnel
Messages : 839
Inscription : 10 janv. 2009 08:05

Re: [Writer] enregistrement auto d'objet comme nom de fichie

Message par joel275 »

Bonjour,

voici une macro qui permet de récupérer dans ton document les 3 cellules qui t'intéressent:

Code : Tout sélectionner

Sub Main
Dim MonDoc as Object, MonTableau as Object
Dim A as String
	MonDoc = ThisComponent
	If Not MonDoc.TextTables.hasByName("Tableau7") Then Print "Tableau7 n'existe pas!": exit sub
	MonTableau = MonDoc.TextTables.getByName("Tableau7")
	For I = 0 To 2
		A = A & IIf( A = "", "","-") & MonTableau.getCellByPosition(1, I).String
	Next
	Print A		'tu as récupéré les contenus des 3 cellules du tableau qui t'intéresse
				'je ne sais pas l'insérer dans un document PDF
				'pzr contre, tu peux lancer la boîte de dialogue AOo qui permet d'enregistrer sous...
				'nombreux exemples dans ce forum
End Sub
et ton document avec un nouveau titre en pièce jointe.

A plus.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par joel275 le 25 oct. 2016 19:37, modifié 1 fois.
A jour de LibreOffice et de Ubuntu
Dudu38300
Fraîchement OOthentifié
Messages : 5
Inscription : 19 oct. 2016 17:09

Re: [Writer] enregistrement auto d'objet comme nom de fichie

Message par Dudu38300 »

Bonjour,

Merci d'avoir apporté une réponse. Malheureusement mon problème n'est pas pour autant résolu.

L'objectif n'est pas d'insérer le résultat de la macro dans un pdf mais de renseigner automatiquement le nom du fichier avec le résultat de la macro lors de l'enregistrement afin de s'affranchir de toute intervention pour renseigner ce nom de fichier.

Cordialement.

Dudu38
Libo 4.1 - Windows 7
joel275
InconditiOOnnel
InconditiOOnnel
Messages : 839
Inscription : 10 janv. 2009 08:05

Re: [Writer] enregistrement auto d'objet comme nom de fichie

Message par joel275 »

Bonsoir

Teste:

Code : Tout sélectionner

Sub Main
Dim MonDoc as Object, MonTableau as Object
Dim A as String
Dim FP as Object, Arg(0) as Integer
	MonDoc = ThisComponent
	If Not MonDoc.TextTables.hasByName("Tableau7") Then Print "Tableau7 n'existe pas!": exit sub
	MonTableau = MonDoc.TextTables.getByName("Tableau7")
	For I = 0 To 2
		A = A & IIf( A = "", "","-") & MonTableau.getCellByPosition(1, I).String
	Next
	'Print A		'tu as récupéré les contenus des 3 cellules du tableau qui t'intéresse
				'je ne sais pas l'insérer dans un document PDF
				'pzr contre, tu peux lancer la boîte de dialogue AOo qui permet d'enregistrer sous...
				'nombreux exemples deans ce forum	
	FP = createUnoService("com.sun.star.ui.dialogs.OfficeFilePicker")
	Arg(0) = com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_AUTOEXTENSION
	FP.initialize(Arg())
	FP.DisplayDirectory = ConvertToUrl("Chemin du dossier")
	FP.DefaultName = A
	FP.Execute
End Sub
A plus.

La modération vous a écrit: Dernière visite de le : 28 Oct 2016 13:17
Les réponses qui ont été faites ont été lues sans y donner de suite.
N'ayant plus de nouvelles, on peut en déduire que le problème est résolu ou ne se reproduit plus.

Merci de baliser par vous-même la prochaine fois.
Un remerciement fait aussi plaisir aux bénévoles qui vous ont consacré de leur temps..

A jour de LibreOffice et de Ubuntu