[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 !

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

Messagepar Dudu38300 » 19 Oct 2016 18:27

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.
Pièces jointes
Rapport de contrôle.ott
(18.4 Kio) Téléchargé 20 fois
Dernière édition par Dudu38300 le 25 Oct 2016 17:08, édité 9 fois.
Libo 4.1 - Windows 7
Dudu38300
Fraîchement OOthentifié
 
Message(s) : 5
Inscrit le : 19 Oct 2016 18:09

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

Messagepar tintin » 19 Oct 2016 21:45

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.6 / Mac OS 10.14.4 Mojave / Time Machine
Java 1.8.0_211 / Firefox / Safari / Thunderbird
Tutoriels du forum pour MacOS
Pour préserver vos documents, faites régulièrement des sauvegardes.
Avatar de l’utilisateur
tintin
GourOOu
GourOOu
 
Message(s) : 5858
Inscrit le : 18 Juil 2008 16:29
Localisation : F-Oise + F-Savoie

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

Messagepar Dudu38300 » 20 Oct 2016 06:55

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
Dudu38300
Fraîchement OOthentifié
 
Message(s) : 5
Inscrit le : 19 Oct 2016 18:09

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

Messagepar Dude » 20 Oct 2016 08:32

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.
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 20594
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

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

Messagepar Dudu38300 » 20 Oct 2016 20:04

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.
Pièces jointes
Rapport de contrôle.ott
(18.4 Kio) Téléchargé 15 fois
Fenêtre d'enregistrement.pdf
(126.67 Kio) Téléchargé 34 fois
Dernière édition par Dudu38300 le 25 Oct 2016 17:09, édité 1 fois.
Libo 4.1 - Windows 7
Dudu38300
Fraîchement OOthentifié
 
Message(s) : 5
Inscrit le : 19 Oct 2016 18:09

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

Messagepar Dude » 21 Oct 2016 08:35

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.
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 20594
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

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

Messagepar joel275 » 22 Oct 2016 17:15

Bonjour,

voici une macro qui permet de récupérer dans ton document les 3 cellules qui t'intéressent:
Code : Tout sélectionner   AgrandirRéduire
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.
Pièces jointes
récup_cellules_tableau.odt
(32.13 Kio) Téléchargé 29 fois
Dernière édition par joel275 le 25 Oct 2016 20:37, édité 1 fois.
OpenOffice 4.1.2 LibreOffice 5-4-6 Windows 8.1
joel275
PassiOOnné
PassiOOnné
 
Message(s) : 716
Inscrit le : 10 Jan 2009 09:05

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

Messagepar Dudu38300 » 25 Oct 2016 17:13

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
Dudu38300
Fraîchement OOthentifié
 
Message(s) : 5
Inscrit le : 19 Oct 2016 18:09

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

Messagepar joel275 » 25 Oct 2016 21:36

Bonsoir

Teste:
Code : Tout sélectionner   AgrandirRéduire
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 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..
OpenOffice 4.1.2 LibreOffice 5-4-6 Windows 8.1
joel275
PassiOOnné
PassiOOnné
 
Message(s) : 716
Inscrit le : 10 Jan 2009 09:05


Retour vers Macros et API

Qui est en ligne ?

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