Titre automatique après chaque actualisation du GCD

Bonjour à tout les experts d'excel !

J'ai besoin de votre aide sur le point suivant :

J'ai des graphiques croisés dynamiques dans l'onglet Gaphs du fichier que je vous envoie.

J'aimerai avoir un titre comme celui que j'ai mis en rouge en haut à gauche de chaque graphique qui se met à jour après chaque actualisation du graphique croisé dynamique.

Donc la date et l'heure se mettent à jour. l'autre texte doit rester le même.

Ces titres doivent être liés à ces graphiques et pas dans des cellules indépendantes svp

Je pense que je suis pas mal clair et précis

Merci à vous tous !

24fichier-test.xlsx (286.71 Ko)

Bonjour,

Essaie cet événement, à mettre dans le module ThisWorkbook :

Private Sub Workbook_SheetPivotTableChangeSync(ByVal Sh As Object, ByVal Target As PivotTable)
   Dim sDateAct As String, Shp As Shape
   For Each Shp In Worksheets("Graphs").Shapes
      sDateAct = Format(Shp.DrawingObject.Chart.PivotLayout.PivotTable.RefreshDate, "yyyy-mm-dd "" à "" hh:mm")
      Shp.DrawingObject.Chart.Shapes(1).DrawingObject.Text = "Dernière mise à jour :" & vbCr & sDateAct
   Next Shp
End Sub

Il faut enregistrer le classeur en xlsm ou xlsb pour conserver la macros.

Merci ça marche !!

mais quand je le met sur excel online ma zone texte disparait totalement !!

J'ai essayé de le mettre en premier plan en pensant que c'est un probeme de positionnement de la zone mais avec toutes les solutions que je connais j'y arrive pas !

Peut tu stp essayer de le mettre sur le onedrive de office 365 et me dire si t'arrive à voir d'ou vient ce probleme si possible?

Avec Excel online cette zone texte disparait mais j'ai essayé un truc si je copie la meme zone en dehors du graphique et je le met en bas du graph par exemple là il apparait !

Peut tu m'expliquer si t'as compris pourquoi stp ?

Merci encore

Bonjour,

Non je n'ai pas office 365, impossible pour moi de faire le test.

Essaie ça juste au cas où :

Private Sub Workbook_SheetPivotTableChangeSync(ByVal Sh As Object, ByVal Target As PivotTable)
   Dim sDateAct As String, Shp As Shape
   For Each Shp In Worksheets("Graphs").Shapes
      sDateAct = Format(Shp.DrawingObject.Chart.PivotLayout.PivotTable.RefreshDate, "yyyy-mm-dd "" à "" hh:mm")
      Shp.DrawingObject.Chart.Shapes(1).DrawingObject.Text = "Dernière mise à jour :" & vbCr & sDateAct
      Shp.DrawingObject.Chart.Shapes(1).Visible = True
   Next Shp
End Sub

Cela force la visibilité du TextBox, mais je doute que cela fasse quoi que ce soit. Le pb doit-être autre.

Salut !

J'ai trouvé le problème est où!

il y a deux façons d'inserer une zone texte d'après ce que j'ai vu.

1 - à partir de Insertion->Zone de texte : c'est elle que j'ai utilisé avant et elle disparaît en mode excel online

2 - à partir de Insertion->Formes->Formes de base->zone de texte ; celle la s'affiche je l'ai testé et ça a marché

Faudra juste changer le type de l'objet qui va s'ajuster après chaque actualisation

En passant, l'ancienne forme était lié au graphique je pouvais pas la faire sortir du cadre du graphique, mais avec la nouvelle forme la zone texte peut sortir du graphique, la forme est libre mais ça ne me dérange pas qu'elle le soit

je met en pièce-jointe le fichier avec les nouvelles formes de zones de textes à utiliser.

Je suis pas mal nul en vba peut tu me dire comment faire stp ?

Merci

16fichier-test2.xlsm (289.78 Ko)

Bonsoir,

J'ai fait une modification rapide pour répondre au besoin, mais cela ne me satisfait pas vraiment :

Private Sub Workbook_SheetPivotTableChangeSync(ByVal Sh As Object, ByVal Target As PivotTable)
   Dim sDateAct As String, Shp As Shape, NameGraph As String
   For Each Shp In Worksheets("Graphs").Shapes
      If TypeName(Shp.DrawingObject) = "ChartObject" Then
         sDateAct = Format(Shp.DrawingObject.Chart.PivotLayout.PivotTable.RefreshDate, "yyyy-mm-dd "" à "" hh:mm")
         NameGraph = Mid(Shp.Chart.Name, 8)
         Worksheets("Graphs").Shapes("ZT" & NameGraph).DrawingObject.Text = "Dernière mise à jour :" & vbCr & sDateAct
      End If
   Next Shp
End Sub

Etant donné que la zone de texte n'est plus intégrée au graphique, ça se complique. Pour résoudre le problème je nomme les zones de texte "ZT" suivi de la totalité du nom de graphique, donc ça fonctionne. Et pour compliqué le tout, VBA ne reconnait pas le nom des Graphes en tant que tel mais "Graphs Graphique 3", au lieu de "Graphique 3"... Donc si tu as un nouveau graphe à mettre sur la feuille, tu crées une zone de liste en la nommant "ZTNomDuGraphe" ou NomDuGraphe est le nom réel du graphique.

Merci beaucoup

Rechercher des sujets similaires à "titre automatique chaque actualisation gcd"