Bonjour,
Ci-joint mes bouts d'exemple à de-scripter
Sans garantie SAV
Cordialement
Jean-Luc
Option Explicit
' retrouve un objet diagramme à partir du nom de l'objet
Function FindChartByObjName(laFeuille As Object, nomDiag As String, sv
As String) As Object '--1 ------------------------------ 1---
Dim dessin As Object
Dim nomDuDiagrammeCalcFCBON
' sv = "com.sun.star.drawing.OLE2Shape" 23/6/2020
' com.sun.star.table.XTableCharts com.sun.star.drawing.OLE2Shape
dessin = FindObjectByName(laFeuille.Drawpage, nomDiag, sv)
'Print ("dessin recherche object 1 " & nomDiag & " " & sv )
'Xray dessin
'Xray laFeuille
nomDuDiagrammeCalcFCBON=dessin.PersistName
'print (nomDuDiagrammeCalcFCBON)
' sv = "com.sun.star.table.XTableCharts" 23/6/2020
' com.sun.star.table.XTableCharts com.sun.star.drawing.OLE2Shape
' Xray laFeuille.Charts
dessin = laFeuille.Charts.getByName(nomDuDiagrammeCalcFCBON) '
FindObjectByName(laFeuille.Charts, nomDuDiagrammeCalcFCBON, sv)
' Xray dessin
if not IsNull(dessin) then
' if dessin.Model.supportsService("com.sun.star.chart.ChartDocument")
then
FindChartByObjName = dessin '.Model
' end if
Else
print ("erreur pas de diagramme")
Xray dessin
end if
End Function ' renvoie Null en cas d'échec FindChartByObjName -- 1
------------------------------------------------ 1 --
' retrouve un objet à partir de son nom
Function FindObjectByName(unePage As Object,nomObj As String, Optional
service As String) As Object ' 2 ----------- 2
' com.sun.star.table.XTableCharts com.sun.star.drawing.OLE2Shape
Dim objX, SousObjectFOBN As Object
Dim NomObjetFOB, ListeDesObjectsFOBN As String
Dim jFOBN, iFOBN, CompteurFOBN, CompteurDepartFOBN, x, y As Long
ListeDesObjectsFOBN="Nbre object dans page initiale " & unePage.Count
& " | Object à trouver " & nomObj & " | "
y=0
If nomObj="" Then
Print ("erreur le nom de l'object est vide " & nomObj)
End If
CompteurDepartFOBN = unePage.Count
For jFOBN=0 To 1
If jFOBN=1 Then
' print("Les compteurs " & CompteurDepartFOBN & " " & unePage.Count)
End If
For x = 0 To unePage.Count - 1
objX = unePage(x)
' Object |
supportsService | Count
' com.sun.star.comp.sc.ScShapeObj" |
com.sun.star.drawing.OLE2Shape | non
' SwXTextGraphicObject |
com.sun.star.text.TextGraphicObject | non
' SwXTextTable |
com.sun.star.text.TextTable | non
' com.sun.star.drawing.XDrawPage |
com.sun.star.drawing.GenericDrawPage | oui
' 'com.sun.star.drawing.RotationDescriptor
'com.sun.star.drawing.ShadowProperties 'com.sun.star.drawing.Shape
'com.sun.star.drawing.Text
'com.sun.star.drawing.TextProperties , 'com.sun.star.sheet.Shape
com.sun.star.drawing.XDrawPage
If objX.supportsService("com.sun.star.text.TextTable") or
objX.supportsService("com.sun.star.text.TextGraphicObject") or
objX.supportsService( "com.sun.star.drawing.OLE2Shape")_
Then ' or
objX.supportsService("com.sun.star.text.TextGraphicObject") Then ' or True
CompteurFOBN = 0 ' com.sun.star.comp.sc.ScShapeObj
SousObjectFOBN = objX
ElseIf objX.supportsService("com.sun.star.drawing.GenericDrawPage")
Then
CompteurFOBN = objX.Count - 1
ListeDesObjectsFOBN= ListeDesObjectsFOBN & " | Nbre d'object dans
page | " & objX.Count
SousObjectFOBN = objX(0)
Print ("objet multiple " & CompteurFOBN)
Xray SousObjectFOBN
Else
CompteurFOBN = 0
Print ("noter le service et vérifier si il y a Count")
Xray objX
End If
For iFOBN = 0 To CompteurFOBN
y=y+1
NomObjetFOB = SousObjectFOBN.Name
ListeDesObjectsFOBN= ListeDesObjectsFOBN &" | " & x & " | " &
NomObjetFOB
If SousObjectFOBN.Name = nomObj Then
If IsMissing(service) then
FindObjectByName = SousObjectFOBN ' objet trouvé
Print (" Name ? et copier un service")
Xray SousObjectFOBN 'com.sun.star.sheet.SpreadsheetDrawPage
Print("Stop")
jFOBN = 1
x = unePage.Count - 1
Else
If SousObjectFOBN.supportsService(service) then
FindObjectByName = SousObjectFOBN ' objet trouvé
jFOBN=1
x = unePage.Count - 1
End If
End If
End If
SousObjectFOBN = objX(iFOBN)
If iFOBN <> 0 or IsEmpty (SousObjectFOBN) Or
IsNull(SousObjectFOBN) Then
Print ("objet multiple suite " & CompteurFOBN)
Xray SousObjectFOBN
Xray objX
End If
Next iFOBN
Next x
'
Next jFOBN
If IsEmpty (FindObjectByName) Or IsNull(FindObjectByName) Then '
nomObj="EP214" Or nomObj="CO048"
Print("Object n'est pas trouvé, Liste des objects " &
ListeDesObjectsFOBN)
print("Les compteurs " & CompteurDepartFOBN & " " & unePage.Count)
'Xray SousObjectFOBN
Xray objX
Xray unePage
End If
End Function ' renvoie Null en cas d'échec FindObjectByName 2
----------------------------------------------------- 2
'sub Creationgraphe()
'end sub
' 3
----------------------------------------------------------------------------------------------------------------
3
Sub
ModifierUnDiagramme(oMonDocumentMUD,NomFeuilleDiagrammeMUD,nomFEUILLEdonneeMUD,NOMdiagrameMUD,LesValeursDesArgumentsMUD,statutMUD)
Dim
oLesFeuillesMUD,oMaFeuilleMUD,PlageDuDiagrammeMUD,MaFormeMUD,MonDiagrammeMUD,
LeDessinDeMonDiagrammeMUD, oDispatchHelperMUD, oLeDiagrammeMUD,
oMonDiagrammeFrameMUD As Object
Dim ArgumentDonneeMUD(0) as new com.sun.star.table.CellRangeAddress
Dim ArgumentDonneeBisMUD(0 to 1) as new
com.sun.star.table.CellRangeAddress
Dim args1(1) as new com.sun.star.beans.PropertyValue
Dim maCellule As Object,maFeuilledonneeMUD As object
dim dispatcher as object
Dim monDiag As Object
Dim DONNEEmodificationMUD,LesNomDesArgumentsMUD,PlageMUD As Variant
Dim iMUD,lMUD, NbrDeDiagrammeMUD As Long
Dim TitreCTD,CasAModifierMUD As Integer, TaillegraphiqueCTD As
Integer, DonneeCTD As Integer, TitreXCTD, TitreYCTD As Integer
Dim LegendeCTD , HauteurCTD As Long
Dim LargeurCTD As Integer, PositionXCTD As Integer, PositionYCTD As
Integer
Dim NomobjectMUD,TexteMUD, LesPlagesDeDonneesMUD (0 to 10) As String
Dim LeDiagrammeExisteMUD As Boolean
Dim ArgumentsMUD(0) As New com.sun.star.beans.PropertyValue
Dim oTailleCTD As New com.sun.star.awt.Size
Dim positionCTD As New com.sun.star.awt.Point
Dim NiveauDebugMUD As Integer
NiveauDebugMUD=1
MessageDebug(NiveauDebugMUD,3,89,"ModifierUnDiagramme")
oLesFeuillesMUD = oMonDocumentMUD.Sheets
oMaFeuilleMUD = oLesFeuillesMUD.getByName(NomFeuilleDiagrammeMUD)
maFeuilledonneeMUD = oLesFeuillesMUD.getByName(nomFEUILLEdonneeMUD)
If NOMdiagrameMUD="" Then
NOMdiagrameMUD="Object 1"
End If
MonDiagrammeMUD =
RetrouverDiagramme(oMonDocumentMUD,NomFeuilleDiagrammeMUD,NOMdiagrameMUD)
If UBound(LesValeursDesArgumentsMUD()) <
DimentionDuVecteurParametreDunDiagrammeGC Then
Print ("LesValeursDesArgumentsMUD n'est pas correctement dimensionée")
print (" les arguments transmis " &
LesValeursDesArgumentsMUD(PlageDeDonneeGC))
Xray LesValeursDesArgumentsMUD
End If
If NiveauDebugMUD>=2 Then
Print ("Affichage des données du diagramme")
Xray LesValeursDesArgumentsMUD
Print ("Affichage du Xray du diagramme")
Xray MonDiagrammeMUD
End If
LeDessinDeMonDiagrammeMUD = MonDiagrammeMUD.embeddedObject
LeDiagrammeExisteMUD=False
if IsNull(MonDiagrammeMUD) then
MessageDebug(NiveauDebugMUD,1,98,"ModifierUnDiagramme",Array ("Le
diagramme n'existe pas !", "vérfier le contenu de la feuille"))
' Xray oMaFeuilleMUD
else
LeDiagrammeExisteMUD=True
End If
If LeDiagrammeExisteMUD Then
If NiveauDebugMUD>=2 Then
Print ("Affichage du Xray du dessin diagramme")
Xray LeDessinDeMonDiagrammeMUD
End If
' Sauvegarde des données du dessin du diagramme écrasé par les
modifications de plage
' If LesValeursDesArgumentsMUD(TitreGC)= ""Then
' LesValeursDesArgumentsMUD(TitreGC) =
LeDessinDeMonDiagrammeMUD.Title.String &" test" 'Modifie le titre du
graphique
' Print ("Titre " & LesValeursDesArgumentsMUD(TitreGC))
' End If
' Actions sur le diagramme seul
If LesValeursDesArgumentsMUD(PlageDeDonneeGC)<> ""Then
If
LaChaineContientLesCaracteres(LesValeursDesArgumentsMUD(PlageDeDonneeGC),
";") Then
LesPlagesDeDonneesMUD=decoupage_d_une_chaine_avec_separateur(LesValeursDesArgumentsMUD(PlageDeDonneeGC),
";")
For iMUD=0 to 1 'UBound(LesPlagesDeDonneesMUD)
If NiveauDebugMUD>=2 Then
print("Text " & iMUD)
Xray LesPlagesDeDonneesMUD(iMUD)
End If
PlageDuDiagrammeMUD =
maFeuilledonneeMUD.getCellRangeByName(LesPlagesDeDonneesMUD(iMUD))
ArgumentDonneeBisMUD(iMUD) = PlageDuDiagrammeMUD.RangeAddress
MonDiagrammeMUD.setranges(ArgumentDonneeBisMUD())
Next iMUD
Else
If
position_premiere_d_un_element_de_chaine_partielle_ds_chaine_complete(LesValeursDesArgumentsMUD(PlageDeDonneeGC),
maFeuilledonneeMUD.Name, "")<>0 Then
PlageDuDiagrammeMUD =
maFeuilledonneeMUD.getCellRangeByName(LesValeursDesArgumentsMUD(PlageDeDonneeGC))
ArgumentDonneeMUD(0) = PlageDuDiagrammeMUD.RangeAddress
MonDiagrammeMUD.setranges(ArgumentDonneeMUD())
Else
print("différence entre la feuille de données et la feuille de
la plage problème de développement à voir " &
LesValeursDesArgumentsMUD(PlageDeDonneeGC)& " " & maFeuilledonneeMUD.Name)
Xray maFeuilledonneeMUD
End If
End If
End If
If NiveauDebugMUD>=2 Then
Print ("Affichage du Xray du diagramme après modif plage")
Xray MonDiagrammeMUD
End If
' Actions sur le dessin du diagramme
If IsEmpty(LesValeursDesArgumentsMUD(TitreGC))or
IsNull(LesValeursDesArgumentsMUD(TitreGC)) or
LesValeursDesArgumentsMUD(TitreGC)= ""Then
Else
LeDessinDeMonDiagrammeMUD.Title.String
=LesValeursDesArgumentsMUD(TitreGC) 'Modifie le titre du graphique
'Print ("le titre " & LesValeursDesArgumentsMUD(TitreGC))
End If
' Axe X
If IsEmpty(LesValeursDesArgumentsMUD(TitreXGC))or
IsNull(LesValeursDesArgumentsMUD(TitreXGC)) or
LesValeursDesArgumentsMUD(TitreXGC)= ""Then
Else
LeDessinDeMonDiagrammeMUD.Diagram.XAxisTitle.String =
LesValeursDesArgumentsMUD( TitreXGC) ' l'étiquette de l'axe X des abscisses
End If
If IsEmpty(LesValeursDesArgumentsMUD(AxeMaxXGC))or
IsNull(LesValeursDesArgumentsMUD(AxeMaxXGC)) or
LesValeursDesArgumentsMUD(AxeMaxXGC)= ""Then
Else
LeDessinDeMonDiagrammeMUD.Diagram.XAxis.Max =
LesValeursDesArgumentsMUD(AxeMaxXGC) 'Spécifie la valeur maxi de
l'étiquette X des abscisses
End If
If IsEmpty(LesValeursDesArgumentsMUD(AxeMinXGC))or
IsNull(LesValeursDesArgumentsMUD(AxeMinXGC)) or
LesValeursDesArgumentsMUD(AxeMinXGC)= ""Then
Else
LeDessinDeMonDiagrammeMUD.Diagram.XAxis.Min =
LesValeursDesArgumentsMUD(AxeMinXGC) 'Spécifie la valeur minii de
l'étiquette X des abscisses
End If
' Axe Y
If IsEmpty(LesValeursDesArgumentsMUD(TitreYGC))or
IsNull(LesValeursDesArgumentsMUD(TitreYGC)) or
LesValeursDesArgumentsMUD(TitreYGC)= ""Then
Else
LeDessinDeMonDiagrammeMUD.Diagram.YAxisTitle.String =
LesValeursDesArgumentsMUD( TitreYGC) ' l'étiquette de l'axe Y des ordonnées
End If
If IsEmpty(LesValeursDesArgumentsMUD(AxeMaxYGC))or
IsNull(LesValeursDesArgumentsMUD(AxeMaxYGC)) or
LesValeursDesArgumentsMUD(AxeMaxYGC)= ""Then
Else
LeDessinDeMonDiagrammeMUD.Diagram.YAxis.Max =
LesValeursDesArgumentsMUD(AxeMaxYGC) 'Spécifie la valeur maxi de
l'étiquette Y des ordonnées
End If
If IsEmpty(LesValeursDesArgumentsMUD(AxeMinYGC))or
IsNull(LesValeursDesArgumentsMUD(AxeMinYGC)) or
LesValeursDesArgumentsMUD(AxeMinYGC)= ""Then
Else
LeDessinDeMonDiagrammeMUD.Diagram.YAxis.Min =
LesValeursDesArgumentsMUD(AxeMinYGC) 'Spécifie la valeur maxi de
l'étiquette Y des ordonnées
End If'
MessageDebug(NiveauDebugMUD,7,135,"ModifierUnDiagramme",Array ("vérifier
le contenu du dessin diagramme",LeDessinDeMonDiagrammeMUD ))
If (IsEmpty(LesValeursDesArgumentsMUD(HauteurGC)) or
IsNull(LesValeursDesArgumentsMUD(HauteurGC)) or
LesValeursDesArgumentsMUD(HauteurGC)= "") and _
(IsEmpty(LesValeursDesArgumentsMUD(LargeurGC))or
IsNull(LesValeursDesArgumentsMUD(LargeurGC)) or
LesValeursDesArgumentsMUD(LargeurGC)= "") Then
Else
'--------------------------------------------------
For NbrDeDiagrammeMUD = 0 to oMaFeuilleMUD.DrawPage.count - 1
oMonDiagrammeFrameMUD =
oMaFeuilleMUD.DrawPage.getByIndex(NbrDeDiagrammeMUD)
'com.sun.star.drawing.XShape
If oMonDiagrammeFrameMUD.name = NOMdiagrameMUD Then
thiscomponent.currentcontroller.select(oMonDiagrammeFrameMUD)
oLeDiagrammeMUD = ThisComponent.CurrentController.Frame
'com.sun.star.frame.XFrame
If NiveauDebugMUD>=2 Then
Print("Diagramme et frame ? à comparer "& NOMdiagrameCUDDUP)
xray oMonDiagrammeFrameMUD
Xray oLeDiagrammeMUD
End If
' oDispatchHelperMUD =
createUnoService("com.sun.star.frame.DispatchHelper")
' oDispatchHelperMUD.executeDispatch(oLeDiagrammeMUD , ".uno:Copy",
"", 0, Array())
NbrDeDiagrammeMUD = oMaFeuilleMUD.DrawPage.count - 1
Else
If NbrDeDiagrammeMUD = oMaFeuilleMUD.DrawPage.count - 1 Then
MessageDebug(NiveauDebugMUD,1,605,"CopierUnDiagrammeDansUnePage",Array("nom
du diagramme selectionné ",oMonDiagrammeFrameMUD.name ,"nom du diagramme
à trouver ", NOMdiagrameCUDDUP)
End If
End If
Next NbrDeDiagrammeMUD
' document = ThisComponent.CurrentController.Frame
'Xray document
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
' print ("Taille " & LesValeursDesArgumentsMUD(HauteurGC) & " | "
& LesValeursDesArgumentsMUD(LargeurGC))
oTailleCTD= LeDessinDeMonDiagrammeMUD.Area.getSize
' Xray oTailleCTD
If IsEmpty(LesValeursDesArgumentsMUD(HauteurGC))or
IsNull(LesValeursDesArgumentsMUD(HauteurGC)) or
LesValeursDesArgumentsMUD(HauteurGC)= "" Then
HauteurCTD = oTailleCTD.Height
Else
HauteurCTD = LesValeursDesArgumentsMUD(HauteurGC)
End If
If IsEmpty(LesValeursDesArgumentsMUD(LargeurGC))or
IsNull(LesValeursDesArgumentsMUD(LargeurGC)) or
LesValeursDesArgumentsMUD(LargeurGC)= "" Then
LargeurCTD = oTailleCTD.Width
Else
LargeurCTD = LesValeursDesArgumentsMUD(LargeurGC)
End If
' LeDessinDeMonDiagrammeMUD.Area.setSize(oTailleCTD) 'Spécifie les
dimensions extérieur de l'ensemble diagramme (diagramme étiquettes
légende...) ne fonctionne pas
' LeDessinDeMonDiagrammeMUD.getArea.setSize(oTailleCTD)
' LeDessinDeMonDiagrammeMUD.Diagram.setSize(oTailleCTD) 'Spécifie
les dimensions extérieur du diagramme seul
args1(0).Name = "TransformWidth"
args1(0).Value = LargeurCTD
args1(1).Name = "TransformHeight"
args1(1).Value = HauteurCTD
dispatcher.executeDispatch(oLeDiagrammeMUD,
".uno:TransformDialog", "", 0, args1())
End If
' MessageDebug(NiveauDebugMUD,7,135,"ModifierUnDiagramme",Array
("vérifier le contenu du dessin diagramme",LeDessinDeMonDiagrammeMUD ))
If NiveauDebugMUD=2 Then
On Error Goto errmodifMUD
'La premiere ligne contient les étiquettes des séries
' .DataSourceLabelsInFirstColumn = False
' .DataSourceLabelsInFirstRow = True
'Roration des étiquettes pour l'axe des abscisses
'.Diagram.XAxis.TextRotation = 9000 '90 degrés
'redéfinit la taille des étiquettes pour les abscisses et les ordonnées
' .Diagram.YAxis.CharHeight = 4
' .Diagram.XAxis.CharHeight = 4
'Attribue un titre au graphique puis un couleur à la chaîne de caractères
' .Title.CharColor = RGB(200,0,0)
' monDiag.Diagram.wall.FillColor = RGB(250,200,200) 'Modifie la
couleur de fond du graphique
'Modifie l'épaisseur de la courbe
' monDiag.Diagram.Linewidth = 100 ???? marche ?????
MessageDebug(NiveauDebugMUD,2,98,"ModifierUnDiagramme",Array
("fin zone sans arrêt sur erreur", ""))
On Error GoTo 0
End If
End if
If NiveauDebugMUD>=2 Then
Print ("Affichage du Xray du diagramme en fin")
Xray MonDiagrammeMUD
End If
Exit Sub
errmodifMUD:
print ("Dans le Programme ModifierUnDiagramme L'instruction n'existe
pas erreur non Bloquante N°:" & Err & " " & Error & "à la ligne " & Erl)
Resume Next
End Sub ' ModifierUnDiagramme -- 3
-------------------------------------------------------------------------------
3 -----
Function RetrouverDiagramme(Byval monDocument, NOMfeuilleDiagrammeRD,
NOMdiagrameRD) As Object ' 4 -------------------------- 4
Dim lesFeuillesRD, MaFeuilleDiagrammeRD, LesFormeRD,
DiagrammeRechercheRD, MaFormeOriginaleRD, diag2 As Object
Dim DocumentModelRD, FenetreEncoursRD, DispatcherRD, maPageRD,
MaPageDessinRD As Object
Dim x As Long
Dim NOMobjectRD, sv As String
Dim NiveauDebugRD As Integer
NiveauDebugRD=1
MessageDebug(NiveauDebugRD,3,186,"RetrouverDiagramme")
lesFeuillesRD = monDocument.Sheets
MaFeuilleDiagrammeRD = lesFeuillesRD.getByName(NOMfeuilleDiagrammeRD)
' print ("feuille")
' Xray MaFeuilleDiagrammeRD
' rechercher l'objet OLE par son nom
sv = "com.sun.star.table.XTableCharts" 'ne trouve pas le diagramme
sv = "com.sun.star.drawing.OLE2Shape"
' sv= "com.sun.star.frame.XController"
'print ("vérfiier les deux diagramme")
'DiagrammeRechercheRD =FindObjectByName(MaFeuilleDiagrammeRD.Drawpage,
NOMdiagrameRD,sv) ' FindChartByObjName .Drawpage
' Xray DiagrammeRechercheRD
DiagrammeRechercheRD =FindChartByObjName(MaFeuilleDiagrammeRD,
NOMdiagrameRD,sv) ' FindChartByObjName .Drawpage
' Xray MaFeuilleDiagrammeRD
' Xray DiagrammeRechercheRD
' Xray MaFeuilleDiagrammeRD.Drawpage
' 1 MaPageDessinRD=MaFeuilleDiagrammeRD.Drawpage
' 1 MaFormeOriginaleRD =FindObjectByName(MaPageDessinRD,
NOMdiagrameRD,"com.sun.star.drawing.OLE2Shape")
'com.sun.star.form.XForm "com.sun.star.form.FormComponents"
com.sun.star.drawing.OLE2Shape com.sun.star.comp.sc.ScShapeObj
' Xray MaFormeOriginaleRD
' DocumentModelRD.CurrentController.Select(MaFormeOriginaleRD) 'rend la
selection visible
' FenetreEncoursRD = StarDesktop.CurrentFrame
' DispatcherRD = createUnoService("com.sun.star.frame.DispatchHelper")
' DispatcherRD.executeDispatch( FenetreEncoursRD, ".uno:Copy", "", 0,
Array()) 'copie dans le presse papier
' FermerF(DocumentModelRD)
' maPageRD = maFeuilleRD '.DrawPage ' récupérer la page de dessin
' FenetreEncoursRD = StarDesktop.CurrentFrame
' DispatcherACB.executeDispatch( FenetreEncoursACB, ".uno:Paste", "", 0,
Array()) 'colle dans la fenêtre active
' LesFormeRD = DocumentModelRD.CurrentController.Selection
' DiagrammeRechercheRD=LesFormeRD (0)
' 1 DiagrammeRechercheRD=MaFormeOriginaleRD
If IsNull(DiagrammeRechercheRD) Then
NiveauDebugRD=2
If MaFeuilleDiagrammeRD.Charts.Count=1 Then
MessageDebug(NiveauDebugRD,2,192,"RetrouverDiagramme",Array (" Il
y a un objet, on suppose que c'est le diagramme, vérifer l'objet suivant
au nom de ",NOMdiagrameRD))
DiagrammeRechercheRD = MaFeuilleDiagrammeRD.Charts(0)
NOMobjectRD= MaFeuilleDiagrammeRD.Charts(0).Name
'.embeddedObject.PersistName
If NOMobjectRD=NOMdiagrameRD Then
MessageDebug(NiveauDebugRD,1,196,"RetrouverDiagramme",Array("Le
diagramme a bien le même anaylser le problème au niveau du prog
FindChartByObjName",NOMdiagrameRD))
Else
MessageDebug(NiveauDebugRD,1,198,"RetrouverDiagramme",Array("Le
diagramme trouvé n'a pas le même nom",NOMobjectRD," vérfier l'existance
du diagramme dans .charts.ElementNames",NOMdiagrameRD))
' Xray MaFeuilleDiagrammeRD
' Xray diag2
End If
NOMobjectRD= "1|" & NOMobjectRD
Else
NOMobjectRD= "2|"
for x = 0 to MaFeuilleDiagrammeRD.Charts.Count -1 ' chaque diagramme
DiagrammeRechercheRD = MaFeuilleDiagrammeRD.Charts(x)
'.embeddedObject
NOMobjectRD=NOMobjectRD & "|" &
MaFeuilleDiagrammeRD.Charts(x).embeddedObject.PersistName
next x
End If
else ' retrouver le même diagramme dans la collection
'print ("diag trouvé")
' for x = 0 to MaFeuilleDiagrammeRD.Charts.Count -1 ' chaque diagramme
' diag2 =MaFeuilleDiagrammeRD.Charts(x).embeddedObject
' if EqualUnoObjects(DiagrammeRechercheRD, diag2) then
' print "Rang du diagramme dans la collection : " & x & " " &
maFeuille.Charts.Count
' NOMobjectRD="3|" & MaFeuilleDiagrammeRD.Charts(x).Name
' print "Nom du diagramme : " & maFeuille.Charts(x).Name & " "
& maFeuille.Charts.Count
' x=MaFeuilleDiagrammeRD.Charts.Count -1
' end if
' next x
end if
MessageDebug(NiveauDebugRD,6,185,"RetrouverDiagramme",Array("Nom du
diagramme",NOMobjectRD))
RetrouverDiagramme=DiagrammeRechercheRD
'RetrouverDiagramme=MaFeuilleDiagrammeRD.Drawpage
End Function ' RetrouverDiagramme 4
----------------------------------------------------------------------------
4
Le 10/01/2021 à 15:27, Algol formations a écrit :
Bonjour,
Je cherche le code qui permettrait dans un classeur calc, d'accéder à
un diagramme et de l'éditer.
Merci d'avance
Cordialement
--
Envoyez un mail à users+unsubscribe@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.