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
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]