4 messages in org.openoffice.fr.progrécupérer les propriétés d'un diagramme
FromSent OnAttachments
BOTTIN Laurence - DGMT/SG/AG2Jan 26, 2007 2:00 am 
BOTTIN Laurence - DGMT/SG/AG2Jan 26, 2007 4:25 am 
c.ma...@univitis.frJan 26, 2007 5:18 am 
Laurent GodardJan 26, 2007 5:52 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:récupérer les propriétés d'un diagrammeActions...
From:BOTTIN Laurence - DGMT/SG/AG2 (laur@equipement.gouv.fr)
Date:Jan 26, 2007 2:00:10 am
List:org.openoffice.fr.prog

Bonjour, Dans une feuille Calc, j'ai un diagramme qui a une mise en forme bien précise. Ce diagramme pointe vers un tableau dont le nombre de lignes augmente régulièrement. Je veux créer une macro qui mête à jour un diagramme lorsque l'utilisateur a fini sa saisie et qu'il clique sur un bouton, j'ai essayé un certains nombre de choses qui ne fonctionnent pas. Pour finir je pense qu'il faut créer à chaque fois un nouveau diagramme et lui appliquer les propriétés du diagramme pré-éxistant.

J'ai trouvé dans la documentation Sun la méthode pour créer un diagramme. Mais je bloque sur la façon dont on peut récupérer les propriétés d'un diagramme. L'enregistreur de macro a un fonctionnement très aléatoire lorsqu'il s'agit de travailler sur des diagrammes.

Est-ce qu'il existe un moyen de récupérer dans un tableau les propiriétés du diagramme ou du embededObject?:

Sub S_CreerNewDiag() Dim Doc As Object Dim Charts As Object Dim oChart0 as Object Dim oChart1 as Object Dim LigneDeb as Long Dim ColonneDeb as Long Dim Rect As New com.sun.star.awt.Rectangle Dim RangeAddress(0) As New com.sun.star.table.CellRangeAddress Dim oZone as Object Dim oZoneAdr As Object Dim oFeuille as Object Dim sNomChart as String Dim varBool

On Error GoTo Erreurs

Doc = StarDesktop.CurrentComponent oFeuille = Doc.sheets.getbyname("Feuille1") Charts = Doc.Sheets(0).Charts ligneDeb = 1 ColonneDeb = 0 Chart0=Charts(0) sNomChart = Chart0.name

if sNomChart = "MyChart" then sNomChart ="MyChart1" Else sNomChart ="MyChart" End if

NbLignes = F_LongueurTable("Feuille1", LigneDeb, ColonneDeb) 'on définit la zone de données utilisée pour actualiser le diagramme : cette méthode ne fonctionne pas ??? oZone = oFeuille.getCellRangeByName("A1:C" & 1 + NbLignes) oZoneAdr = oZone.getRangeAddress()

Rect.X = 8000 Rect.Y = 1000 Rect.Width = 10000 Rect.Height = 7000

RangeAddress(0).Sheet = 0 RangeAddress(0).StartColumn = 0 RangeAddress(0).StartRow = 0 RangeAddress(0).EndColumn = 2 RangeAddress(0).EndRow = 1 + NbLignes -1

Charts.addNewByName(sNomChart, Rect, RangeAddress(), True, True) 'on récupère le diagramme que l'on vient de créer Chart1=Charts(1) 'on applique les propriétés du diagramme original au nouveau diagramme

Chart1.HasColumnHeaders =Chart0.HasColumnHeaders 'Chart1.HasMainTitle =Chart0.HasMainTitle 'Chart1.Title =Chart0.Title 'Chart1.HasSubTitle =Chart0.HasSubTitle 'Chart1.SubTitle =Chart0.SubTitle 'Chart1.HasLegend =Chart0.HasLegend

'xray Chart0 'Chart1.embededObject.DataSourceLabelsInFirstColumn = Chart0.embededObject.DataSourceLabelsInFirstColumn 'ne fonctionne pas 'Chart1.embededObject.DataSourceLabelsInFirstRow =Chart0.embededObject.DataSourceLabelsInFirstRow 'ne fonctionne pas

Exit Sub Erreurs: erreur_num=err() erreur_txt=error(erreur_num) erreur_ligne = Erl() MsgBox(vl_projet & " :" & Chr(10) & Chr(10) & "erreur n° " + erreur_num + " à la ligne " + erreur_ligne + chr(13) + erreur_txt, 1 + 16, " S_CreerNewDiag")

End Sub

Merci d'avance

LAurence