Macro Bordure_Selection

Distribué par le projet Fr.OpenOffice.org

Révision 1.00 - 29 novembre 2004

Réalisé avec : OOo 1.1.3	Plate-forme / Os : Toutes

Table des Matières

1 Tester la macro	3

1.1 Les fonctionnalités de la macro	3

1.2 Les limitations de la macro	4

2 Utiliser la macro	5

2.1 Installer la macro	5

2.2 Petits trucs	5

3 La macro	6

4 Crédits	8

5 Licence	8

Tester la macro

Les fonctionnalités de la macro

La macro permet d'encadrer une sélection.

Elle conserve les principaux attributs de caractères : police, taille etc.

Dans le texte ci-dessous, sélectionner une portion de texte et cliquer sur le bouton Test 1.

**************************************************************************************************************

Cadre Normal gras italique souligné gras-italique gras-souligné italique-souligné gras-italique-souligné normal-couleur -italique-souligné-couleur Normal gras italique souligné gras-italique gras-souligné italique-souligné gras-italique-souligné normal-couleur gras-italique-souligné-couleur contour relief ombre contour-ombré

Tableau
	L2C1	Normal gras italique souligné gras-italique gras-souligné italique-souligné gras-italique-souligné normal-couleur -italique-souligné-couleur

**************************************************************************************************************

Texte d'origine pour comparaison

(ne pas utiliser la macro dans cette section)

Normal gras italique souligné gras-italique gras-souligné italique-souligné gras-italique-souligné normal-couleur gras-italique-souligné-couleur contour relief ombre contour-ombré

Cadre Normal gras italique souligné gras-italique gras-souligné italique-souligné gras-italique-souligné normal-couleur -italique-souligné-couleur

Tableau
	L2C1	Normal gras italique souligné gras-italique gras-souligné italique-souligné gras-italique-souligné normal-couleur -italique-souligné-couleur

Les limitations de la macro

La macro place le texte sélectionné dans un cadre-texte. Or tous les attributs de caractères ne sont pas acceptés dans les cadres-textes, en particulier l'arrière-plan (trame de fond) et le clignotement. Ces attributs seront donc perdus lors de l'utilisation de la macro. Si besoin, on peut annuler l'action de la macro.

Le format Majuscule n'et pas conservé lorsqu'il est défini par Format/Caractères/Attributs/Majuscules mais il est conservé lorsqu'il est mis en oeuvre à l'aide de la touche SHIFT (ou MAJ) ou lorsqu'il est appliqué par l'utilisation du bouton Majuscule de la barre de texte.

Note : si l'option 'Majuscule en début de phrase' a été activée (dans Outils/Autocorrection/Options/), le texte de la partie encadrée commencera nécessairement par une majuscule, ce qui, en général, n'est pas souhaité. Il est donc conseillé de désactiver cette option.

Le cadre-texte crée est centré verticalement sur la ligne. Si la ligne contient des caractères de différentes tailles, l'alignement se fait par rapport aux plus grand caractères ce qui est souvent inesthétique. On peut cependant corriger manuellement la position du cadre.

Lors d'un enregistrement au format Word, les textes encadrés disparaissent corps et biens.

Dans le texte ci-dessous, sélectionner une portion de texte et cliquer sur le bouton Test 2.

**************************************************************************************************************

Arial 12 : trame de fond (arrière-plan de caractère) clignotement

Le problème des majuscules :

petites majuscules (via Format /Caractères)

majuscules (via Format /Caractères)

MAJUSCULES (via l'icône de la barre de texte)

MAJUSCULES (via la touche SHIFT ou MAJ)

Arial 12 Arial 20 Arial 10 Arial 16

**************************************************************************************************************

Texte d'origine pour comparaison

(ne pas utiliser la macro dans cette section)

Arial 12 : trame de fond (arrière-plan de caractère) clignotement

Le problème des majuscules :

petites majuscules (via Format /Caractères)

majuscules (via Format /Caractères)

MAJUSCULES (via l'icône de la barre de texte)

MAJUSCULES (via la touche SHIFT ou MAJ)

Arial 12 Arial 20 Arial 10 Arial 16

Utiliser la macro

Installer la macro

Pour rendre la macro disponible pour tous les documents, il faut l'installer comme macro de soffice dans le module Standard.

On peut ajouter un bouton dans une barre d'outils sur lequel il suffira de cliquer pour lancer la macro.

On peut également définir une combinaison de touches clavier qui lancera la macro.

Pour plus d'information sur l'installation des macros et son assignation à des boutons ou combinaisons de touche, voir .

http://fr.openoffice.org/Documentation/How-to/Basic/ht01_basic.sxw

Petits trucs

Pour annuler l'action de la macro juste après son utilisation, cliquer 2 fois sur le bouton Annuler de la barre de fonctions.

Pour positionner à sa guise le cadre-texte crée par la macro, sélectionner ce cadre puis utiliser les flèches haut/bas tout en maintenant la touche ALT enfoncée.

D'une manière générale, toutes les manipulations de cadres-textes peuvent être mise en oeuvre (choix de bordure, couleur d'arrière-plan etc.).

De même, on peut intervenir sur le contenu du cadre-texte en double-cliquant sur celui-ci.

La macro

Sub Bordure_Selection

'v1.0.0

'Auteur : Agnès Simonet

'Contributeur : Didier_Dorange-Pattoret pour l'accès aux tableaux et cadres.

'Contributeur : Bernard Marcelly pour la solution au problème des fantômes dans les cadres.

'le texte sélectionné ne doit pas contenir des sauts de ligne

'ou des sauts de paragraphe sinon bizarreries

Dim MonDocument As Object, MonTexte As Object

Dim MonCurseur As Object

Dim CurseurVisible As Object, CurseurFormat As Object

Dim CurseurDebut As Object, CurseurFin As Object

Dim TexteDeLaSelection As String

Dim MonRectangle As Object

Dim TailleRectangle As New com.sun.star.awt.Size

Dim CurseurRectangle As Object

Dim TexteRectangle As Object

Dim lapolice as string, lataille as single, legras as single

Dim litalique as integer, lesouligne as integer, lacouleur as long

Dim lombre as boolean, lecontour as boolean , lerelief as integer

'récupère la sélection (4 lignes)

'Merci a Didier Dorange-Pattoret

MonDocument = ThisComponent

CurseurVisible = MonDocument.currentcontroller.ViewCursor

MonTexte = CurseurVisible.Text

'crée et positionne le curseur permettant de récupérer le texte et le format (1 ligne)

CurseurFormat = MonTexte.createTextCursorByRange(CurseurVisible)

'récupère le texte de la sélection (1 ligne

TexteDeLaSelection = CurseurFormat.String

'cas où rien n'est séctionné (sélection supposée < à 64 ko !) (4 lignes)

If Len(TexteDeLaSelection)=0 Then

Print("pas de sélection ---> FIN")

Exit Sub

Else

'récupère le format de caractère (9 lignes)

lapolice = CurseurFormat.CharFontName

lataille = CurseurFormat.CharHeight

legras = CurseurFormat.CharWeight

litalique = CurseurFormat.CharPosture

lesouligne = CurseurFormat.CharUnderLine

lacouleur = CurseurFormat.CharColor

lombre = CurseurFormat.CharShadowed

lecontour = CurseurFormat.CharContoured

lerelief = CurseurFormat.CharRelief

'crée et positionne le curseur d'écriture (1 ligne)

MonCurseur = MonTexte.createTextCursorByRange(CurseurVisible)

'crée un mini rectangle (5 lignes hors commentaires)

TailleRectangle.Width = 1

TailleRectangle.Height = 1

'MonRectangle = MonDocument.createInstance("com.sun.star.drawing.RectangleShape")

'TextAutoGrowWidth ne fonctionne pas avec un rectangleshape

MonRectangle=MonDocument.createInstance("com.sun.star.drawing.TextShape")

MonTexte.insertTextContent( MonCurseur,MonRectangle,true)

MonRectangle.Size = TailleRectangle

'ancrage comme caractère (1 ligne)

MonRectangle.AnchorType = com.sun.star.text.TextContentAnchorType.AS_CHARACTER

'contour (1 ligne)

MonRectangle.LineStyle = com.sun.star.drawing.LineStyle.SOLID

'centre le rectangle (1 ligne)

MonRectangle.VertOrient = com.sun.star.text.VertOrientation.CHAR_CENTER

'centre verticalement le texte du rectangle (1 ligne)

MonRectangle.TextVerticalAdjust = com.sun.star.drawing.TextVerticalAdjust.CENTER

'adapte la taille du rectangle à celle du texte (2 lignes)

MonRectangle.TextAutoGrowWidth = true

MonRectangle.TextAutoGrowHeight = true

'place un curseur dans le rectangle (2 lignes)

TexteRectangle = MonRectangle.Text

CurseurRectangle=TexteRectangle.createTextCursor

'récupère le format de caractère:(9 lignes)

CurseurRectangle.CharFontName = lapolice

CurseurRectangle.CharHeight = lataille

CurseurRectangle.CharWeight = legras

CurseurRectangle.CharPosture = litalique

CurseurRectangle.CharUnderLine = lesouligne

CurseurRectangle.CharColor = lacouleur

CurseurRectangle.CharShadowed = lombre

CurseurRectangle.CharContoured = lecontour

CurseurRectangle.CharRelief = lerelief

'écrit avec format de caractère (1 ligne)

TexteRectangle.insertString(CurseurRectangle,TexteDeLaSelection,TRUE)

'place le rectangle au premier plan, pour les cadres (1 ligne hors commentaire)

'Merci à Bernard Marcelly

MonRectangle.LayerId = 1

EndIf

End sub

'contour (1 ligne)

MonRectangle.LineStyle = com.sun.star.drawing.LineStyle.SOLID

'centre le rectangle (1 ligne)

MonRectangle.VertOrient = com.sun.star.text.VertOrientation.CHAR_CENTER

'centre verticalement le texte du rectangle (1 ligne)

MonRectangle.TextVerticalAdjust = com.sun.star.drawing.TextVerticalAdjust.CENTER

'adapte la taille du rectangle à celle du texte (2 lignes)

MonRectangle.TextAutoGrowWidth = true

MonRectangle.TextAutoGrowHeight = true

'place un curseur dans le rectangle (2 lignes)

TexteRectangle = MonRectangle.Text

CurseurRectangle=TexteRectangle.createTextCursor

'récupère le format de caractère:(9 lignes)

CurseurRectangle.CharFontName = police

CurseurRectangle.CharHeight = taille

CurseurRectangle.CharWeight = gras

CurseurRectangle.CharPosture = italique

CurseurRectangle.CharUnderLine = souligne

CurseurRectangle.CharColor = couleur

CurseurRectangle.CharShadowed = ombre

CurseurRectangle.CharContoured = contour

CurseurRectangle.CharRelief = relief

'écrit avec format de caractère (1 ligne)

TexteRectangle.insertString(CurseurRectangle,TexteDeLaSelection,TRUE)

EndIf

End sub

Crédits

Auteur : Agnès Simonet

Remerciement : Remy Petit, Michel Tanguy, Bernard Marcelly et Didier Dorange-Pattoret pour leur aide et conseils, Jean Michel Pierre et Yves Chaufour pour les tests.

Intégré par : Sophie Gautier

Dernière modification : 29 novembre 2004

Contacts : Projet Documentation OpenOffice.org - fr.OpenOffice.org

Traduction :

Historique des modifications :

Version	Date	Commentaire
0.40	19/09/04	
1.00	29/11/04	Extension aux tableaux et cadres.

Licence

Appendix

Public Documentation License Notice

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 Macro Bordures Sélection. The Initial Writer of the Original Documentation is Agnès Simonet Copyright (C) 2004. All Rights Reserved. (Initial Writer contact(s):	agnes.simonet@laposte.net

Contributor(s): Didier Dorange-Pattoret, Bernard Marcelly.

Portions created by ______ are Copyright (C)_________[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.

fr.OpenOffice.org

Fr.OpenOffice.org	9 / 9

ego moi

2004-09-19T09:30:40