Date: prev next · Thread: first prev next last
2021 Archives by date, by thread · List index


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.