Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Excel 2013 - Masquer une courbe d'un graphique avec VBA

Apprenti_vba

XLDnaute Nouveau
Bonjour à toutes et à tous,

Pour Excel 2013, sur un graphique en faisant clic droit "Sélectionner les données", on peut cocher les "entrées de légende " ou "Etiquette de l'axe horizontal". Cela permet d'afficher les données d'abscisse ou d'ordonnées que l'on veut.
Savez-vous comment je peux faire la même manip en utilisant VBA, sachant qu'en enregistrant une macro, le code ne s'affiche pas.
Attention je ne souhaite pas supprimer et recréer la courbe, je précise bien masquer et afficher la courbe.

Merci d'avance pour vos retours.
 

job75

XLDnaute Barbatruc
Bonjour Apprenti_vba, bienvenue sur XLD,

Sur un graphique "Courbe" ou "Nuage de points" on peut afficher ou masquer la ligne d'une série :
Code:
Private Sub CommandButton1_Click()
ChartObjects(1).Chart.SeriesCollection(1).Format.Line.Visible = CommandButton1.Caption = "Afficher"
CommandButton1.Caption = IIf(CommandButton1.Caption = "Masquer", "Afficher", "Masquer")
End Sub
Cette macro étant celle du bouton ActiveX de la feuille.

Bonne nuit.
 

Apprenti_vba

XLDnaute Nouveau
Bonsoir job75,

C'est bon je viens de trouver ce que je cherchais.
En fait VBA marche quand on utilise directement le filtre du graphique.

Pour info:

Code:
ActiveChart.FullSeriesCollection(2).IsFiltered = True 'pour désactiver la courbe 2
ActiveChart.ChartGroups(1).FullCategoryCollection(4).IsFiltered = True 'pour désactiver la 4ème donnée en abscisse.

Je clôture ce post.

Bonne soirée
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour Apprenti_vba, le forum,

Fichier joint avec le code complété pour que tout le monde comprenne :
Code:
Private Sub CommandButton1_Click()
With ChartObjects(1).Chart
  .FullSeriesCollection(2).IsFiltered = CommandButton1.Caption = "Masquer"
  .ChartGroups(1).FullCategoryCollection(4).IsFiltered = CommandButton1.Caption = "Masquer"
  .ChartTitle.Text = .FullSeriesCollection(1).Name & IIf(CommandButton1.Caption = "Masquer", "", " et " & .FullSeriesCollection(2).Name)
End With
CommandButton1.Caption = IIf(CommandButton1.Caption = "Masquer", "Afficher", "Masquer")
End Sub
A+
 

Pièces jointes

  • Filtrer série(1).xlsm
    30.1 KB · Affichages: 91

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…