Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Lancement d'une macro lors de la modification d'un graphique basé sur un tableau croisé dymanique

2 réponses
Avatar
Céline Brien
Bonjour à tous,
Un tableau croisé dymanique et un graphique basé sur ce tableau croisé
dynamique.
Lorsque je change le mois du champ Mois, le graphique s'actualise perd sa
mise en forme et reprend la mise en forme par défaut des graphiques basés
sur un tableau croisé dynamique. Mon graphique est un graphique à deux axes.
J'ai créé une macro pour refaire la mise en forme de mon graphique, mais je
dois cliquer sur l'onglet d'à côté pour ensuite, en cliquant sur l'onglet du
graphique, appeler la macro :
------------------------------
Private Sub Chart_Activate()
Call DeuxAxes
End Sub
------------------------------
Ci-après les codes de la macro DeuxAxes qui fonctionnent très très bien.
Question : est-il possible de lancer la macro DeuxAxes lors du changement du
mois avec la liste déroulante du champ Mois du graphique ???
Merci beaucoup de votre aide,
Céline
---------------------------------------------------
Sub DeuxAxes()
'
'
' DeuxAxes Macro
' Macro créée le 30 janvier 2006 par Céline Brien (819) 326-7273
'


ActiveChart.SeriesCollection(2).Select
ActiveChart.SeriesCollection(2).ChartType = xlLineMarkers
ActiveChart.SeriesCollection(2).Select
On Error Resume Next
ActiveChart.SeriesCollection(2).AxisGroup = 2
With Selection.Border
.ColorIndex = 27
.Weight = xlThin
.LineStyle = xlContinuous
End With
With Selection
.MarkerBackgroundColorIndex = 27
.MarkerForegroundColorIndex = 27
.MarkerStyle = xlSquare
.Smooth = False
.MarkerSize = 5
.Shadow = False
End With
ActiveChart.Axes(xlValue, xlSecondary).Select
Selection.TickLabels.AutoScaleFont = False
With Selection.TickLabels.Font
.Name = "Arial"
.Size = 9
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
.Background = xlAutomatic
End With
Selection.TickLabels.Font.Bold = True
Selection.TickLabels.Font.ColorIndex = 27
ActiveChart.SeriesCollection(1).Select
With Selection.Interior
.ColorIndex = 28
.Pattern = xlSolid
End With
End Sub

2 réponses

Avatar
AV
Question : est-il possible de lancer la macro DeuxAxes lors du changement du
mois avec la liste déroulante du champ Mois du graphique ???


En supposant que ce que tu appeles "la liste déroulante du champ Mois du
graphique" est une cellule contenant une liste de validation permettant de
changer de mois......
Un truc insensible aux diverses versions d'XL :
Quelque part dans une nouvelle feuille (éventuellement masquée),
=LaCelluleContenant LaListeDeValidation
En clair ce pourrait être quelque chose comme = Feuil1!B10
Dans le module de cette feuille :

Private Sub Worksheet_Calculate()
DeuxAxes
End Sub

Chaque changement dans "LaCelluleContenant LaListeDeValidation" entrainera le
déclenchement de ta macro "DeuxAxes"

AV

Avatar
Céline Brien
Bonjour à tous,
Bonjour AV,
Merci pour ta réponse. Un truc à garder dans mes archives.
Cependant, ce truc ne s'applique pas ici puisque je ne peux créer la formule
pointant vers une cellule d'un onglet Graphique.
J'ai trouvé autre chose cependant. l'objet Chart et l'évènement Calculate.
Private Sub Chart_Calculate()
DeuxAxes
End Sub
Merci encore pour ton aide et bon dimanche à tous,
Céline

"AV" a écrit dans le message de news:

Question : est-il possible de lancer la macro DeuxAxes lors du changement
du mois avec la liste déroulante du champ Mois du graphique ???


En supposant que ce que tu appeles "la liste déroulante du champ Mois du
graphique" est une cellule contenant une liste de validation permettant de
changer de mois......
Un truc insensible aux diverses versions d'XL :
Quelque part dans une nouvelle feuille (éventuellement masquée),
=LaCelluleContenant LaListeDeValidation
En clair ce pourrait être quelque chose comme = Feuil1!B10
Dans le module de cette feuille :

Private Sub Worksheet_Calculate()
DeuxAxes
End Sub

Chaque changement dans "LaCelluleContenant LaListeDeValidation" entrainera
le déclenchement de ta macro "DeuxAxes"

AV