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.
- Comment boucler sur les pages d'une présentation ainsi que sur chacun des objets placé sur les pages ?
- Comment ouvrir une présentation et la démarrer en mode plein écran ?
- Comment masquer une page dans une présentation ?
- Comment dupliquer une page dans la présentation ?
- Comment créer une présentation dynamiquement ?
Cette procédure ouvre une présentation, boucle sur chaque page pour afficher son nom et le nombre d'objet qu'elle contient.
Ensuite la macro boucle sur chaque objet pour en récupérer les dimensions.
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 | Sub BoucleObjetsPresentation Dim Fichier As String Dim Array() As Variant Dim oDoc As Object , oPage As Object Dim i As Integer , j As Integer Fichier = "C:\Documents and Settings\mimi\dossier\maPresentation.odp" Fichier = ConvertToURL(Fichier) 'Ouvre la présentation oDoc = StarDesktop.LoadComponentFromURL( Fichier , "_blank", 0, Array() ) 'Boucle sur les slides For i = 0 To oDoc.getDrawPages().getCount() - 1 oPage = oDoc.getDrawPages.getByIndex(i) 'Affiche le nom de la page et compte le nombre de Shapes qu'elle contient MsgBox oPage.getCount() & " shape(s)" & _ " dans la page nommée '" & oPage.getName & "'" 'Boucle sur les objets de la page For j = 0 To oPage.getCount() - 1 oShape = oPage.getByIndex(j) MsgBox "Dimensions " & oShape.getSize.Width & " x " & oShape.getSize.Height Next j Next i End Sub |
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 | Sub DemarrerPresentation Dim Fichier As String Dim Array() As Variant Dim oDoc As Object Fichier = "C:\Documents and Settings\mimi\dossier\maPresentation.odp" Fichier = ConvertToURL(Fichier) 'Ouvre la présentation oDoc = StarDesktop.LoadComponentFromURL( Fichier , "_blank", 0, Array() ) 'Démarre la présentation en mode plein ecran oDoc.Presentation.Start End Sub |
Cet exemple permet de masquer le 3eme Slide dans la présentation
Code vb : | Sélectionner tout |
ThisComponent.DrawPages(2).Visible = False
Si vous souhaitez réafficher le Slide :
Code vb : | Sélectionner tout |
ThisComponent.DrawPages(2).Visible = True
La macro ci dessous duplique la 3eme page de la présentation.
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 | Sub DupliqueSlideImpress Dim oDoc As Object oDoc = ThisComponent 'Duplique la 3eme page dans le même fichier oDoc.Duplicate(oDoc.DrawPages(2)) End Sub |
Remarque :
Le nouveau Slide est systématiquement placé à droite du Slide copié et nommé en fonction de sa position dans la présentation.
Dans notre exemple la nouvelle page va être nommée « Page 4 » et les autres pages seront automatiquement renommées en conséquence.
Cet exemple nécessite d'être connecté à internet afin de récupérer l'image qui va s'afficher dans la présentation.
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 | Sub CreerPresentation Dim oDoc As Object , oPage As Object Dim Arg() As Variant 'Création présentation oDoc = StarDesktop.loadComponentFromURL( "private:factory/simpress", "_blank", 0, Arg() ) '--- 'Spécifie la première page (qui est automatiquement créée en même 'temps que la nouvelle présentation). oPage = oDoc.DrawPages.getByIndex(0) 'Renomme la page oPage.Name = "DVP 1" AjoutImage ( oDoc , oPage , "http://www.developpez.com/template/logo.gif" , _ 6500 , 3500 , 500 , 500 ) AjoutTexte ( oDoc , oPage , "Bienvenue à vous !" , _ 14000 , 2500 , 7000 , 6000 , RGB(235,235,180) ) '--- '--- Ajoute une deuxième page --- oPage = oDoc.DrawPages.insertNewByIndex(1) '(1) correspond à l'index de la 2eme page oPage.Name = "DVP 2" AjoutImage ( oDoc , oPage , "http://www.developpez.com/template/logo.gif" , _ 6500 , 3500 , 500 , 500 ) AjoutTexte ( oDoc , oPage , "J'espère que cet exemple vous aura aidé..." , _ 14000 , 3000 , 7000 , 6000 , RGB(235,235,180) ) '--- 'Démarre la présentation en mode plein écran oDoc.Presentation.Start 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 | Function AjoutImage( oCmp As Object , oPge As Object , Fichier As String , Largeur As Long , _ Hauteur As Long , Verti As Long , Horiz As Long ) Dim oImage As Object Dim oSize As New com.sun.star.awt.Size Dim oPos As New com.sun.star.awt.Point '--- Insère une image, la redimensionne et la positionne et la page --- '(Cet exemple nécessite d'être connecté à internet pour récupérer l'image) oImage = oCmp.createInstance("com.sun.star.drawing.GraphicObjectShape") oImage.GraphicURL = ConvertToURL(Fichier) 'Ajoute l'image oPge.Add(oImage) 'Définit la taille oSize.Width = Largeur oSize.Height = Hauteur oImage.Size = oSize 'Définit la Position oPos.x = Horiz oPos.y = Verti oImage.Position = oPos End Function |
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 | Function AjoutTexte( oCmp As Object , oPge As Object , leTexte As String , Largeur As Long , _ Hauteur As Long , Verti As Long , Horiz As Long , Couleur As Long) Dim oShape As Object Dim oSize As New com.sun.star.awt.Size Dim oPos As New com.sun.star.awt.Point '--- insère une zone de texte , la redimensionne et la positionne et la page --- oShape = oCmp.createInstance("com.sun.star.drawing.TextShape") 'Définit la taille oSize.Width = Largeur oSize.Height = Hauteur oShape.Size = oSize 'Définit la Position oPos.x = Horiz oPos.y = Verti oShape.Position = oPos 'Définit la couleur de fond pour la zone de texte oShape.FillStyle = com.sun.star.drawing.FillStyle.SOLID oShape.FillColor = Couleur 'Ajoute la zone de texte oPge.Add(oShape) 'insère le texte oShape.getText().setString( leTexte ) oShape.getText().CharHeight = 40 'taille caractères End Function |
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.