Partager via

VBA : Excel met à jour les données d'un graphe Powerpoint

Anonyme
2019-07-05T12:50:47+00:00

Bonjour à tous,

Sous Windows XP et Excel 2007, configuration de création, la macro ci-dessous effectue bien la mise à jour des graphes Powerpoint.

Sous Windows 10 et Excel 2007 ou Excel 2019, j'obtiens une erreur de compilation  sur le mot chart:

Membre de méthode ou de données introuvable.

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'Option Explicit

Dim FEUILLE_PARAMETRE

Dim strPresPath, strNewPresPath

'CLASSEUR ET PPT

Public monclasseur

Public oPPTApp As PowerPoint.Application

Public oPPTFile As PowerPoint.Presentation, oPPTFile_in As PowerPoint.Presentation

'

Public slidenum

Sub GLOBAL_MAJ()

    Call OUVERTURE_PPT

    Call MAJ_GRAPHE

    oPPTFile.SaveAs strNewPresPath

    oPPTFile.Close

    oPPTApp.Quit

  '

    Set oPPTFile_in = Nothing

    Set oPPTFile = Nothing

    Set oPPTApp = Nothing

    Set monclasseur = Nothing

End Sub

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Sub MAJ_GRAPHE()

Dim i

Dim cell_start, v_temp

Dim ShapeName

Dim i_line_debut, j_col_debut, j_col, i_line

slidenum = 1

ShapeName = "QUESTION1"

cell_start = "G3"

Range(cell_start).Select

i_line_debut = ActiveCell.Row

j_col_debut = ActiveCell.Column

'

j_col = j_col_debut

i_line = i_line_debut

With oPPTFile.Slides(slidenum).Shapes(ShapeName)

' ERREUR DE COMPILATION

   .Chart.ChartData.Activate

   For i = 1 To 2

       v_temp = monclasseur.Sheets(FEUILLE_PARAMETRE).Cells(i_line, j_col).Value

       .Chart.ChartData.Workbook.Worksheets("Feuil1").Cells(i + 1, 2).Value = v_temp

       j_col = j_col + 1

   Next i

       '

  .Chart.ChartData.Workbook.Close

      '

End With

End Sub

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Sub OUVERTURE_PPT()

    Dim FileIN, FileOUT

    Application.ScreenUpdating = False

    Set monclasseur = Application.ActiveWorkbook

    FEUILLE_PARAMETRE = "PARAMETRE"

    FileIN = monclasseur.Sheets(FEUILLE_PARAMETRE).Range("C3").Value

    FileOUT = monclasseur.Sheets(FEUILLE_PARAMETRE).Range("C4").Value

' Présentation PPT contenant un graphe à mettre à jour   

    strPresPath = ThisWorkbook.Path & "" & FileIN

    strNewPresPath = ThisWorkbook.Path & "" & FileOUT

    Set oPPTApp = CreateObject("PowerPoint.Application")

    oPPTApp.Visible = msoTrue

    Set oPPTFile_in = oPPTApp.Presentations.Open(strPresPath)

    oPPTFile_in.SaveAs strNewPresPath

    Set oPPTFile = oPPTApp.ActivePresentation

    Set oPPTFile_in = Nothing

  '

End Sub

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Je cherche une solution à ce problème depuis 2015.

Si quelqu'un a déjà eu ce problème et a trouvé une solution,

cela éviterait de mettre tous ces projets basés sur ce mécanisme à la poubelle.

D'avance merci

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

9 réponses

  1. Anonyme
    2019-07-05T14:48:00+00:00

    Si la ligne .Chart.ChartData.Activate est en commentaire,

    l'erreur de compilation est déplacée sur la ligne .Chart.ChartData.Workbook.Worksheets("Feuil1").Cells(i + 1, 2).Value = v_temp.

    Si cette dernière est en commentaire, l'erreur de compilation est sur la ligne  .Chart.ChartData.Workbook.Close.

    Si la ligne Close est en commentaire, il n'y a pas d'erreur de compilation.

    Et sous Excel 2007 / Windows XP, aucune erreur de compilation.

    Je me pose la question : est-ce que Microsoft a supprimé cette possibilité VBA de mettre à jour les graphes PPT par Excel ?

    Y aurait-il une autre façon d' y arriver ?

    Merci bien

    Cordialement

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Supprimé

    Cette réponse a été supprimée en raison d’une violation de notre Code de conduite. La réponse a été signalée manuellement ou identifiée via la détection automatisée avant que l’action ne soit entreprise. Pour obtenir plus d’informations, veuillez consulter notre Code de conduite.


    Les commentaires ont été désactivés. En savoir plus

  3. DanielCo 107.7K Points de réputation
    2019-07-05T14:27:10+00:00

    La ligne provoquant l'erreur :

    .Chart.ChartData.Activate

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. Anonyme
    2019-07-05T14:05:55+00:00

    Désolé . je ne vois pas de quelle ligne vous parlez.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  5. DanielCo 107.7K Points de réputation
    2019-07-05T13:38:47+00:00

    Bonjour,

    A quoi sert la ligne ? Essaie de la mettre en commentaire.

    Cordialement.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire