FAQ LibreOffice et Apache OpenOfficeConsultez toutes les FAQ
Nombre d'auteurs : 10, nombre de questions : 359, dernière mise à jour : 15 juillet 2017 Ajouter une question
Bienvenue sur la FAQ, elle a été réalisée pour répondre aux questions concernant les suites bureautiques Apache OpenOffice (AOO) et LibreOffice (LibO).
Si vous souhaitez participer pour l'améliorer, pour proposer vos contributions ou si vous constatez des erreurs dans cette page, n'hésitez-pas !!! Participez.
HautPageComment boucler sur les cadres contenus dans un document ?
Les cadres (aussi appelés TextFrames) sont accessibles en utilisant le menu Insertion/Cadres.
Cet exemple boucle sur tous les cadres du document pour en récupérer certaines informations :
- le nom ;
- le texte contenu ;
- Les dimensions.
Et modifie :
la propriété d'impression du cadre ;
la protection de la taille, de la position et du contenu
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | Sub BoucleCadres Dim i As Integer For i = 0 To Ubound( ThisComponent.TextFrames.ElementNames() ) 'Affiche le nom de chaque cadre MsgBox ThisComponent.TextFrames.ElementNames (i) '--- quelques exemples d'actions sur les cadres With ThisComponent.TextFrames.getByIndex( i ) 'Récupère le contenu du cadre MsgBox .String 'Récupère les dimensions du cadre MsgBox .Height & " x " & .Width 'Désactive l'option d'impression de chaque cadre .setPropertyValue( "Print" , False ) 'protége la taille du cadre .Text.SizeProtected = True 'protège la position du cadre .Text.PositionProtected = True 'protège le contenu du cadre .Text.ContentProtected = True End With Next i End Sub |
L'exemple positionne le curseur dans le premier cadre du document.
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 | Sub AtteindreCadreSpecifique Dim oFrame As Object 'Spécifie le 1er cadre dans le document oFrame = ThisComponent.TextFrames.getByIndex(0) 'Positionne le curseur dans le cadre ThisComponent.CurrentController.Select( oFrame.Text.Start ) End Sub |
Utilisez la macro ci-dessous pour récupérer la position d'un cadre:
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 | Sub RecupererPositionCadre Dim oFrame As Object 'Spécifie un cadre nommé "Cadre1" oFrame = ThisComponent.TextFrames.getByName("Cadre1") MsgBox oFrame.HoriOrientPosition & " x " & oFrame.VertOrientPosition End Sub |
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 | Sub ModifierPositionCadre Dim oFrame As Object 'Spécifie un cadre nommé "Cadre1" oFrame = ThisComponent.TextFrames.getByName("Cadre1") With oFrame .HoriOrientPosition = 4000 .VertOrientPosition = 6000 End With End Sub |
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | Sub CreationCadre Dim oFrame As Object Dim Curseur As Object Curseur = ThisComponent.Text.createTextCursor() oFrame = ThisComponent.createInstance( "com.sun.star.text.TextFrame" ) 'Insertion du cadre à l'emplacement du curseur ThisComponent.Text.insertTextContent( Curseur , oFrame , False ) With oFrame .Name = "LeCadre" .setString( "Mon texte dans le cadre" ) .BackColor = RGB( 255 , 0 , 0 ) 'Définit le type d'ancrage .AnchorType = com.sun.star.text.TextContentAnchorType.AT_PAGE 'Définit la largeur du cadre par rapport à la largeur de la page (en pourcentage) '.FrameWidthPercent = 90 'Position horizontale .HoriOrient = com.sun.star.text.HoriOrientation.NONE .HoriOrientRelation = com.sun.star.text.RelOrientation.PAGE_FRAME .HoriOrientPosition = 4000 'Position verticale .VertOrient = com.sun.star.text.VertOrientation.NONE .VertOrientRelation = com.sun.star.text.RelOrientation.PAGE_FRAME .VertOrientPosition = 10000 .Width = 5000 '.FrameIsAutomaticHeight = False '.Height = 5000 'Pour adapter le cadre à la taille du texte '.WidthType = 2 End With End Sub |
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Sub ModificationBordures Dim oFrame As Object Dim Tableau As Variant 'Spécifie un cadre nommé "LeCadre" oFrame = ThisComponent.TextFrames.getByName("LeCadre") 'Array( Color , InnerLineWidth , OuterLineWidth , LineDistance ) Tableau = Array(0, 0, 0, 0) With oFrame .setPropertyValue( "TopBorder" , Tableau ) .setPropertyValue( "BottomBorder" , Tableau ) .setPropertyValue( "LeftBorder" , Tableau ) .setPropertyValue( "RightBorder" , Tableau ) End With End Sub |
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.