OpenOffice.org Ribambelles Manuel utilisateur
Faites des ribambelles
(avec Writer)
Réalisé avec : OOo 2.2
Version 1.0 du 12.12.2007
Plate-forme / Os : Toutes
Distribué par le projet fr.OpenOffice.org
fr.OpenOffice.org
Sommaire
6 - Macro pour dupliquer l'objet modèle.............................................................
2 / 10
fr.OpenOffice.org
1 - Introduction
Ribambelle : série de petits personnages qui se tiennent les uns aux autres, obtenue en découpant un personnage dans une feuille de papier pliée (d'après le dictionnaire).
On m'a demandé récemment de réaliser, en 50 exemplaires, un petit objet de dessin agrémenté d'un peu de texte, d'un format de 3x4 cm, destiné à garnir des porte-clés.
Il est possible de faire une telle réalisation avec l'outil « Étiquettes » moyennant quelques calculs d'emplacement, de dimensions, de marges, car souvent les tailles standard d'étiquettes ne correspondent pas à ce que l'on désire. La méthode proposée ici est une autre façon de faire, moins contraignante au niveau de la préparation, étant donné que la mise en page se fait toute seule.
Cela m'a donné l'idée de faire part de quelques réflexions et quelques astuces pour mener à bien ce travail.
Les indications qui suivent sont valables pour tout objet de dimensions inférieures à une page A4, réalisé sur un document Writer, que l'on veut dupliquer par copier-coller, avec pour finalité d'imprimer la ou les pages, pour ensuite découper chaque objet.
Ce travail sera facilité par une macro qui automatise les opérations de copier-coller, le code figure
au chapitre 6 et la macro active est jointe au fichier de ce how-to. Attention ! Si vous activez la
macro dans ce document vous risquez tout simplement de vous retrouver avec plusieurs how-to à la suite l'un de l'autre !
Illustration 1: Une ribambelle de petites images.
2 - Objets concernés
Pratiquement tous les objets que l'on peut insérer dans un document Writer : des morceaux de texte, un cadre avec tout ce qu'il peut contenir, une image, un objet de dessin, un objet OLE (tableau Calc), un diagramme, un petit tableau Writer (à condition de l'insérer dans un cadre), une section pré-formatée (colonnes, style de paragraphe, etc.).
3 / 10
fr.OpenOffice.org
remarque : ce dernier objet est un peu différent des précédents, puisqu'il n'est pas question de découpage, mais de mise en forme de texte. J'ai tenu à vous parler de
cette utilisation particulière de la macro au chapitre 8 car je pense que cela peut
rendre service à certains utilisateurs de Writer.
3 - Ancrer comme caractère
La condition nécessaire et suffisante pour avoir une bonne duplication des objets est que le modèle soit ancré « comme caractère ».
Les copies successives vont se juxtaposer comme des caractères dans un texte, chacune à droite de la précédente, en faisant un retour à la ligne quand c'est nécessaire.
Illustration 2: Choix de l'ancrage.
4 - Marge extérieure
Pour la plupart des objets
énumérés plus haut, il est possible de régler une
« marge extérieure » en agissant sur les paramètres
–Format–Adaptation du texte–
Espacement–
Si ces valeurs sont réglées à zéro, les objets seront juxtaposés bord à bord, si vous laissez une marge les objets copiés seront écartés l'un de l'autre.
À vous de voir ce qui convient le mieux pour le découpage ultérieur.
Illustration 3: Réglage des marges autour de l'image.
Illustration 4: Avec marge extérieure nulle.
4 / 10
fr.OpenOffice.org
5 - Réalisation manuelle des copies
Votre modèle est finalisé, vous l'avez bien ancré
« comme caractère », il se trouve donc en haut et à gauche de votre page.
Si votre objet est dé-sélectionné, vous devez voir le point d'insertion (curseur) qui clignote à droite de l'objet, sur toute la hauteur occupée.
Voici le processus pour faire des copies manuelles : sélectionner l'objet menu –Édition–Tout sélectionner– ou au clavier :
Ctrl + a
copier dans le presse-papiers menu –Édition–Copier– ou au clavier :
Ctrl
+
c
dé-sélectionner l'objet au clavier :
Échap
coller la copie menu –Édition–Coller– ou au clavier :
Ctrl
+
v
Coller autant de fois que c'est nécessaire.
Illustration 5: L'objet est prêt à être recopié.
Vos copies ont rempli une ou plusieurs pages, vous pouvez bien-entendu intervenir sur le format de page pour réduire les marges et/ou opter pour l'orientation paysage, afin d'occuper au mieux l'espace disponible, en accédant au menu –Format–Page–Page–.
Si vous avez réalisé trop de copies, un simple appui sur la touche retour arrière
vous permettra de les supprimer une par une.
Chaque copie peut être personnalisée après coup, si vous le désirez.
Pour une personnalisation en série, vous pouvez bien sûr insérer des champs dans votre modèle, avant duplication. S'il s'agit de champs de base de données, n'oubliez pas de mettre en dernier un champ « enregistrement suivant » pour que tout fonctionne bien.
Vous trouverez des précisions sur l'insertion de champs dans l'excellent how-to :
How-to Tutoriel Étiquettes de Jean-Michel Pierre
5 / 10
fr.OpenOffice.org
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
42
44
46
6 - Macro pour dupliquer l'objet modèle
Les opérations manuelles ci-dessus permettent de réaliser assez facilement un petit nombre de copies, mais comme il s'agit d'actions répétitives, pourquoi se priver d'une macro qui fera aussi bien que vous et plus vite !
6.1 Contenu de la macro
REM ***** BASIC *****
Option Explicit sub copie dim A as integer dim document as object dim dispatcher as object dim I dim oDialog as object dim oPDialog as object dim iDialogResult as integer dim oCombien as object
DialogLibraries.LoadLibrary("Standard") oDialog = DialogLibraries.Standard.Dialog1
oPDialog = CreateUnoDialog(oDialog) rem --------appel boite de dialogue----------------------------------iDialogResult = oPDialog.execute() rem --------la valeur saisie est attribuée à la variable A-----------oCombien = oPDialog.getControl("TextField1")
A = oCombien.Text
A = A-1 rem déduire l'exemplaire existant rem --------accès au document----------------------------------------document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper") rem -------copie l'objet dans le presse-papiers----------------------dispatcher.executeDispatch(document, ".uno:SelectAll", "", 0, Array()) dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array()) rem ---------dé-sélectionne l'objet (le curseur est à droite)--------dispatcher.executeDispatch(document, ".uno:Escape", "", 0, Array()) rem --------nombre de copies à effectuer-----------------------------for I = 1 to A rem ---------insère une copie de l'objet à droite du précédent-------dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array()) rem ---------boucle suivante-----------------------------------------next I end sub
À copier dans « Mes macros » tout simplement par copier-coller.
Si vous voulez vous lancer dans la création de macros, je vous conseille vivement de visiter l'excellent site de Christian : http://christianwtd.free.fr/
Vous saurez tout sur les boites de dialogue en lisant le chapitre 11 du "Manuel de programmation" de SUN : http://docs.sun.com/app/docs/doc/819-1328
6 / 10
fr.OpenOffice.org
6.2 Utilisation pratique
Un bouton (ou une icône) placé dans la barre d'outils « Formatage » vous permet d'un simple clic d'activer la macro.
Illustration 6: Icône assignée à la macro.
Illustration 7: Personnaliser la barre d'outils.
Depuis le menu –Affichage–Barres d'outils–Personnaliser– vous pouvez ajouter un bouton ou une icône assigné(e) à la macro « copie ».
Dès que vous cliquez sur ce bouton vous voyez apparaitre cette boite de dialogue :
Illustration 8: Boite de dialogue attachée à la macro.
Saisissez le nombre d'objets désirés en tout (il vous est proposé 2 par défaut) et cliquez sur le bouton OK.
Les copies se font dans la seconde qui suit.
6.3 Genèse de la macro
6.3.a Avec l'enregistreur de macro
J'ai commencé par faire une copie manuelle comme décrit au chapitre 5 , avec l'enregistreur de
7 / 10
fr.OpenOffice.org
macro en service. J'ai obtenu les lignes de code 7 et 8 (déclarations) et de 28 à 42 (actions) sans la boucle for...next. Cela fonctionnait donc pour faire une seule copie. C'est à peu près tout ce que l'enregistreur est capable de faire.
6.3.b Avec le système D
Ensuite il a fallu passer à plusieurs copies, j'ai donc crée une variable A et lui ai donné provisoirement une valeur fixe (5 par exemple).
J'ai rajouté une boucle for...next (voir chapitre 2 du Manuel de programmation de SUN ) en fin de
programme pour obtenir la répétition de l'action « coller » et j'ai testé le fonctionnement.
Voyant que cela était bon j'ai cherché le moyen de communiquer une valeur choisie à la variable A. Une boite de dialogue m'a semblé être l'outil convenable.
6.3.c Création graphique de la boite
J'ai commencé par la création graphique de la boite, en sélectionnant le module qui contient la macro et cliquant le bouton « Gérer ». J'ai choisi l'onglet « Boites de dialogue » et le bouton
« Nouveau ».
La création se fait avec les mêmes outils que pour réaliser un formulaire, il faut donner un titre à la boite, ce sera « Combien d'exemplaires ? » puis créer une étiquette « Nombre » suivie d'une zone de texte contenant « 2 » et d'un bouton « OK ».
La zone de texte contenant le nombre que l'on va saisir au clavier s'appelle ici « TextField1 », on retrouve cette même appellation dans la macro à la ligne 23.
6.3.d Indexation de la variable
Pour capter la valeur entrée dans « TextField1 » et l'attribuer à la variable A j'ai quelque peu galéré, et ne trouvant rien dans les diverses documentations en français j'ai eu recours à un programmeur qui m'a dit : « essaie avec .Text ». Cela a marché ! Je n'en ai pas cherché plus.
7 - Filon à exploiter
Je me suis rendu compte à l'utilisation que si l'on insère, dans le modèle, un numéro avec l'outil
« Puces et numéros », les copies successives s'incrémentent automatiquement !
Illustration 9: Des objets ou étiquettes numérotés
Voilà qui est intéressant pour réaliser des étiquettes numérotées, ou pourquoi pas, des billets de tombola, en série limitée quand même ! Je n'ai pas creusé davantage cette possibilité, aussi je vous invite à trouver d'autres utilisations et également les limites du système.
8 / 10
fr.OpenOffice.org
8 - Utilisation inattendue de la macro
J'ai lu récemment dans « users » une question posée par un utilisateur :
Je travaille en ce moment sur un ouvrage qui va faire dans les 200 pages. Je veux présenter globalement le texte sur deux colonnes. Par globalement, je pense au corps du texte à l'exclusion des titres de niveau 1 et 2, des tableaux, du sommaire et de l'éditorial. Y a-t-il une méthode élégante pour procéder?
Effectivement il n'y a pas de méthode élégante pour traiter le texte à postériori, du fait que les paramètres de mise en colonnes sont superbement ignorés par le "Styliste" de même que les paramètres concernant les sections. On se demande pourquoi.
On peut malgré tout faire une mise en forme globale avant la saisie du texte, voici le test que j'ai réalisé.
Sur un nouveau document Writer j'appuie sur la touche
Entrée
et j'insère une section sur la deuxième ligne en paramétrant les colonnes et l'espace au milieu. Une fois la section créée je mets le curseur dedans et j'applique un style de paragraphe qui me convient.
Illustration 10: De nombreuses sections pré-formatées.
Ensuite j'appelle la macro et je demande 15, 20 ou 30 copies, autant que de corps de texte désirés, voyez le résultat sur l'illustration 10.
Il ne reste plus qu'a remplir les différentes sections avec le texte des chapitres, par saisie ou par copier-coller, et les parties intermédiaires avec tout ce qui occupera la pleine largeur de page.
L'avantage de ce procédé est que l'on aura réussi à appliquer un style homogène à tout le document, malgré les restrictions vues ci-dessus.
9 - Informations complémentaires
Nul doute qu’à la lecture de ce document, le lecteur sera désireux de perfectionner ses connaissances ou de répondre à des questions non débattues ici. OpenOffice.org propose deux moyens d’accès direct à l’information : des documents thématiques constituant une somme d’informations de référence et des listes de diffusion sur lesquelles intervenir de manière dynamique.
9.1 Espace documentaire
Le site fr.openoffice.org propose de nombreux documents, guides et how-to qui permettent d’approfondir certains points en rapport avec le thème de ce how-to.
L’ensemble des documentations disponibles sont placées dans l’espace Documentation : http://fr.openoffice.org/Documentation/Index.html
Documents directement en rapport avec celui-ci :
How-to Tutoriel Étiquettes de Jean-Michel Pierre http://docs.sun.com/app/docs/doc/819-1328 http://christianwtd.free.fr/
9.2 Listes de diffusion
Par ailleurs, les listes de diffusion du site fr.openoffice.org sont ouvertes à tous et permettent les
échanges entre utilisateurs. La liste [users-fr] ( http://fr.openoffice.org/contact-forums.html
) est l’endroit privilégié pour obtenir de l’aide dans l’emploi quotidien de la suite OpenOffice.org.
9 / 10
fr.OpenOffice.org
10 - Crédits
Auteur : Jean Perrin
Remerciement : à Tony Galmiche, Pierre Poisson et tous les relecteurs.
Intégré par : Sophie Gautier
Contacts : Projet Documentation OpenOffice.org - f
r.OpenOffice.org
Traduction :
Historique des modifications :
Version
0.1
Date Commentaire
01/09/07 Première version pour relecture
0.2
1.0
04/09/07 Nombreuses petites corrections et ajout de « Genèse de la macro »
12/12/07 Version pour publication
11 - Licence
Appendix
Public Documentation License Notice
The contents of this Documentation are subject to the Public Documentation License
Version 1.0 (the "License"); you may only use this Documentation if you comply with the terms of this License. A copy of the License is available at
http://www.openoffice.org/licenses/PDL.html
.
The Original Documentation is Faites des ribambelles. The Initial Writer of the Original
Documentation is Jean Perrin Copyright © 2007. All Rights Reserved. (Initial Writer contact(s): agnesperrin@hotmail.com).
Contributor(s): ______________________________________.
Portions created by ______ are Copyright ©_________[Insert year(s)]. All Rights Reserved.
(Contributor contact(s):________________[Insert hyperlink/alias]).
NOTE: The text of this Appendix may differ slightly from the text of the notices in the files of the Original Documentation. You should use the text of this Appendix rather than the text found in the Original Documentation for Your Modifications.
10 / 10

公開リンクが更新されました
あなたのチャットの公開リンクが更新されました。