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

Graphique basé sur tableau croisé dynamique

6 réponses
Avatar
Céline Brien
Bonjour tout le monde,
Le contexte
Un graphique basé sur les données d'un tableau croisé dynamique avec les
mois en champ Page.
Sur l'axe des abscisses : les jours du mois.
Deux axes des ordonnées : la fréquentation et la température.
Histogramme pour la fréquentation. Courbes pour la température.
Le problème
Si l'on change de mois, on perd la mise en forme. Le graphique reprend
sa mise en forme par défaut. Un axe et histogramme.
Ma solution
J'ai créé un graphique personnalisé. Une macro sélectionne ce graphique
personnalisé. La macro est déclenchée lorsque l'on sélectionne l'onglet
de ce graphique.
Problème avec cette solution
Le fichier ne peut être utilisé sur un autre ordinateur, sauf si l'on
ajoute le graphique personnalisé au Excel de cet ordinateur.
Question
Avez-vous une autre solution à me proposer ?
Merci beaucoup de votre aide précieuse,
Céline

6 réponses

Avatar
Daniel
Bonjour.
Il faut se servir de l'enregistreur de macros pour l'ensemble de la mise en
forme sans utiliser de graphique personnalisé.
Ré-appliquer la macro à chaque changement.
Cordialement.
Daniel
"Céline Brien" a écrit dans le message de
news: uOG3$
Bonjour tout le monde,
Le contexte
Un graphique basé sur les données d'un tableau croisé dynamique avec les
mois en champ Page.
Sur l'axe des abscisses : les jours du mois.
Deux axes des ordonnées : la fréquentation et la température.
Histogramme pour la fréquentation. Courbes pour la température.
Le problème
Si l'on change de mois, on perd la mise en forme. Le graphique reprend
sa mise en forme par défaut. Un axe et histogramme.
Ma solution
J'ai créé un graphique personnalisé. Une macro sélectionne ce graphique
personnalisé. La macro est déclenchée lorsque l'on sélectionne l'onglet
de ce graphique.
Problème avec cette solution
Le fichier ne peut être utilisé sur un autre ordinateur, sauf si l'on
ajoute le graphique personnalisé au Excel de cet ordinateur.
Question
Avez-vous une autre solution à me proposer ?
Merci beaucoup de votre aide précieuse,
Céline





Avatar
Céline Brien
Bonjour Daniel,
Tu as raison. C'est la solution.
Sais-tu comment déclencher la macro lors du changement de mois avec le
bouton de champ Mois ???
Merci,
Céline

"Daniel" a écrit dans le message de
news:
Bonjour.
Il faut se servir de l'enregistreur de macros pour l'ensemble de la
mise en

forme sans utiliser de graphique personnalisé.
Ré-appliquer la macro à chaque changement.
Cordialement.
Daniel
"Céline Brien" a écrit dans le message
de

news: uOG3$
Bonjour tout le monde,
Le contexte
Un graphique basé sur les données d'un tableau croisé dynamique avec
les


mois en champ Page.
Sur l'axe des abscisses : les jours du mois.
Deux axes des ordonnées : la fréquentation et la température.
Histogramme pour la fréquentation. Courbes pour la température.
Le problème
Si l'on change de mois, on perd la mise en forme. Le graphique
reprend


sa mise en forme par défaut. Un axe et histogramme.
Ma solution
J'ai créé un graphique personnalisé. Une macro sélectionne ce
graphique


personnalisé. La macro est déclenchée lorsque l'on sélectionne
l'onglet


de ce graphique.
Problème avec cette solution
Le fichier ne peut être utilisé sur un autre ordinateur, sauf si
l'on


ajoute le graphique personnalisé au Excel de cet ordinateur.
Question
Avez-vous une autre solution à me proposer ?
Merci beaucoup de votre aide précieuse,
Céline









Avatar
Daniel
Dans un module tu mets :
Public Mois
Dans le code de ta feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveSheet.PivotTables("Tableau croisé dynamique1"). _
PivotFields("Mois").CurrentPage <> Mois Then
' **************ICI ta macro ***************************
Mois = ActiveSheet.PivotTables("Tableau croisé dynamique1"). _
PivotFields("Mois").CurrentPage
End If
End Sub

En adaptant le nom du tableau et le nom du champ.
Cordialement.
Daniel
"Céline Brien" a écrit dans le message de
news:
Bonjour Daniel,
Tu as raison. C'est la solution.
Sais-tu comment déclencher la macro lors du changement de mois avec le
bouton de champ Mois ???
Merci,
Céline

"Daniel" a écrit dans le message de
news:
Bonjour.
Il faut se servir de l'enregistreur de macros pour l'ensemble de la
mise en

forme sans utiliser de graphique personnalisé.
Ré-appliquer la macro à chaque changement.
Cordialement.
Daniel
"Céline Brien" a écrit dans le message
de

news: uOG3$
Bonjour tout le monde,
Le contexte
Un graphique basé sur les données d'un tableau croisé dynamique avec
les


mois en champ Page.
Sur l'axe des abscisses : les jours du mois.
Deux axes des ordonnées : la fréquentation et la température.
Histogramme pour la fréquentation. Courbes pour la température.
Le problème
Si l'on change de mois, on perd la mise en forme. Le graphique
reprend


sa mise en forme par défaut. Un axe et histogramme.
Ma solution
J'ai créé un graphique personnalisé. Une macro sélectionne ce
graphique


personnalisé. La macro est déclenchée lorsque l'on sélectionne
l'onglet


de ce graphique.
Problème avec cette solution
Le fichier ne peut être utilisé sur un autre ordinateur, sauf si
l'on


ajoute le graphique personnalisé au Excel de cet ordinateur.
Question
Avez-vous une autre solution à me proposer ?
Merci beaucoup de votre aide précieuse,
Céline












Avatar
Céline Brien
Bonjour Daniel,
Merci pour cette réponse.
Si j'exécute ma macro manuellement, elle fait très bien le travail.
Si je tente de l'exécuter avec tes codes elle ne fonctionne pas.
Voici ce que j'ai fait en premier :
Dans Module 1 : Public Mois()
Dans la fenêtre Graph1 tes codes et ma macro à l'endroit prévu.
Incidemment, j'aimerais déclencher la macro lorsque je change le mois
avec le bouton champ Mois situé en haut à gauche du graphique tableau
croisé dynamique et non avec le champ Page du tableau croisé dynamique.
En deuxième j'ai testé la macro en la déplaçant dans la fenêtre Feuil5,
celle du tableau croisé dynamique.
Mon tableau s'appelle Tableau croisé dynamique3. J'ai pas oublié de
renommer dans tes codes.
Le champ s'appelle bien Mois.
Ci-après tes codes et mes codes.
As-tu d'autres suggestions ???
Merci encore,
Céline
-----------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveSheet.PivotTables("Tableau croisé
dynamique3").PivotFields("Mois").CurrentPage <> Mois Then
ActiveChart.SeriesCollection(2).Select
ActiveChart.SeriesCollection(2).ChartType = xlLineMarkers
ActiveChart.SeriesCollection(2).Select
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
Mois = ActiveSheet.PivotTables("Tableau croisé
dynamique3").PivotFields("Mois").CurrentPage
End If
End Sub



"Daniel" a écrit dans le message de
news:%
Dans un module tu mets :
Public Mois
Dans le code de ta feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveSheet.PivotTables("Tableau croisé dynamique1"). _
PivotFields("Mois").CurrentPage <> Mois Then
' **************ICI ta macro ***************************
Mois = ActiveSheet.PivotTables("Tableau croisé dynamique1"). _
PivotFields("Mois").CurrentPage
End If
End Sub

En adaptant le nom du tableau et le nom du champ.
Cordialement.
Daniel
"Céline Brien" a écrit dans le message
de

news:
Bonjour Daniel,
Tu as raison. C'est la solution.
Sais-tu comment déclencher la macro lors du changement de mois avec
le


bouton de champ Mois ???
Merci,
Céline

"Daniel" a écrit dans le message de
news:
Bonjour.
Il faut se servir de l'enregistreur de macros pour l'ensemble de la
mise en

forme sans utiliser de graphique personnalisé.
Ré-appliquer la macro à chaque changement.
Cordialement.
Daniel
"Céline Brien" a écrit dans le
message



de
news: uOG3$
Bonjour tout le monde,
Le contexte
Un graphique basé sur les données d'un tableau croisé dynamique
avec




les
mois en champ Page.
Sur l'axe des abscisses : les jours du mois.
Deux axes des ordonnées : la fréquentation et la température.
Histogramme pour la fréquentation. Courbes pour la température.
Le problème
Si l'on change de mois, on perd la mise en forme. Le graphique
reprend


sa mise en forme par défaut. Un axe et histogramme.
Ma solution
J'ai créé un graphique personnalisé. Une macro sélectionne ce
graphique


personnalisé. La macro est déclenchée lorsque l'on sélectionne
l'onglet


de ce graphique.
Problème avec cette solution
Le fichier ne peut être utilisé sur un autre ordinateur, sauf si
l'on


ajoute le graphique personnalisé au Excel de cet ordinateur.
Question
Avez-vous une autre solution à me proposer ?
Merci beaucoup de votre aide précieuse,
Céline
















Avatar
Daniel
Le code doit se trouver dans la feuille qui contient le tableau croisé.
Regarde le classeur à l'adresse :
http://cjoint.com/?bDvnpGPC2a
Il contient un tableau très simple. A chaque fois que tu changes de mois, le
message "toto" s'affiche en remplacement de la macro de mise en forme du
graphique.
Daniel
"Céline Brien" a écrit dans le message de
news:
Bonjour Daniel,
Merci pour cette réponse.
Si j'exécute ma macro manuellement, elle fait très bien le travail.
Si je tente de l'exécuter avec tes codes elle ne fonctionne pas.
Voici ce que j'ai fait en premier :
Dans Module 1 : Public Mois()
Dans la fenêtre Graph1 tes codes et ma macro à l'endroit prévu.
Incidemment, j'aimerais déclencher la macro lorsque je change le mois
avec le bouton champ Mois situé en haut à gauche du graphique tableau
croisé dynamique et non avec le champ Page du tableau croisé dynamique.
En deuxième j'ai testé la macro en la déplaçant dans la fenêtre Feuil5,
celle du tableau croisé dynamique.
Mon tableau s'appelle Tableau croisé dynamique3. J'ai pas oublié de
renommer dans tes codes.
Le champ s'appelle bien Mois.
Ci-après tes codes et mes codes.
As-tu d'autres suggestions ???
Merci encore,
Céline
-----------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveSheet.PivotTables("Tableau croisé
dynamique3").PivotFields("Mois").CurrentPage <> Mois Then
ActiveChart.SeriesCollection(2).Select
ActiveChart.SeriesCollection(2).ChartType = xlLineMarkers
ActiveChart.SeriesCollection(2).Select
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
Mois = ActiveSheet.PivotTables("Tableau croisé
dynamique3").PivotFields("Mois").CurrentPage
End If
End Sub



"Daniel" a écrit dans le message de
news:%
Dans un module tu mets :
Public Mois
Dans le code de ta feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveSheet.PivotTables("Tableau croisé dynamique1"). _
PivotFields("Mois").CurrentPage <> Mois Then
' **************ICI ta macro ***************************
Mois = ActiveSheet.PivotTables("Tableau croisé dynamique1"). _
PivotFields("Mois").CurrentPage
End If
End Sub

En adaptant le nom du tableau et le nom du champ.
Cordialement.
Daniel
"Céline Brien" a écrit dans le message
de

news:
Bonjour Daniel,
Tu as raison. C'est la solution.
Sais-tu comment déclencher la macro lors du changement de mois avec
le


bouton de champ Mois ???
Merci,
Céline

"Daniel" a écrit dans le message de
news:
Bonjour.
Il faut se servir de l'enregistreur de macros pour l'ensemble de la
mise en

forme sans utiliser de graphique personnalisé.
Ré-appliquer la macro à chaque changement.
Cordialement.
Daniel
"Céline Brien" a écrit dans le
message



de
news: uOG3$
Bonjour tout le monde,
Le contexte
Un graphique basé sur les données d'un tableau croisé dynamique
avec




les
mois en champ Page.
Sur l'axe des abscisses : les jours du mois.
Deux axes des ordonnées : la fréquentation et la température.
Histogramme pour la fréquentation. Courbes pour la température.
Le problème
Si l'on change de mois, on perd la mise en forme. Le graphique
reprend


sa mise en forme par défaut. Un axe et histogramme.
Ma solution
J'ai créé un graphique personnalisé. Une macro sélectionne ce
graphique


personnalisé. La macro est déclenchée lorsque l'on sélectionne
l'onglet


de ce graphique.
Problème avec cette solution
Le fichier ne peut être utilisé sur un autre ordinateur, sauf si
l'on


ajoute le graphique personnalisé au Excel de cet ordinateur.
Question
Avez-vous une autre solution à me proposer ?
Merci beaucoup de votre aide précieuse,
Céline



















Avatar
Céline Brien
Bonjour Daniel,
Merci beaucoup pour ton aide,
La macro ne fonctionne pas, car dans le champ mois du tableau croisé
dynamique, j'ai renommé les mois. Le 1 est devenu Janvier 2006. Le 2 est
devenu Février 2006. Etc. Ceci afin d'obtenir, dans le graphique, les
mois en lettres et non en chiffre.
De plus, je préfère masquer l'onglet du tableau croisé dynamique et
demander aux utilisateurs de changer le mois dans le graphique.
Je suis donc revenu à mes codes qui appellent la macro sur activation de
l'onglet du graphique.
-------------------------------------
Private Sub Chart_Activate()
Call DeuxAxes
End Sub
-------------------------------------
Ceci oblige l'utilisateur, après avoir changé le mois du graphique, à
cliquer sur un autre onglet et à revenir, pas très élégant, mais je n'ai
plus le temps de tester plus loin pour aujourd'hui.
Merci encore,
Céline


"Daniel" a écrit dans le message de
news:
Le code doit se trouver dans la feuille qui contient le tableau
croisé.

Regarde le classeur à l'adresse :
http://cjoint.com/?bDvnpGPC2a
Il contient un tableau très simple. A chaque fois que tu changes de
mois, le

message "toto" s'affiche en remplacement de la macro de mise en forme
du

graphique.
Daniel
"Céline Brien" a écrit dans le message
de

news:
Bonjour Daniel,
Merci pour cette réponse.
Si j'exécute ma macro manuellement, elle fait très bien le travail.
Si je tente de l'exécuter avec tes codes elle ne fonctionne pas.
Voici ce que j'ai fait en premier :
Dans Module 1 : Public Mois()
Dans la fenêtre Graph1 tes codes et ma macro à l'endroit prévu.
Incidemment, j'aimerais déclencher la macro lorsque je change le
mois


avec le bouton champ Mois situé en haut à gauche du graphique
tableau


croisé dynamique et non avec le champ Page du tableau croisé
dynamique.


En deuxième j'ai testé la macro en la déplaçant dans la fenêtre
Feuil5,


celle du tableau croisé dynamique.
Mon tableau s'appelle Tableau croisé dynamique3. J'ai pas oublié de
renommer dans tes codes.
Le champ s'appelle bien Mois.
Ci-après tes codes et mes codes.
As-tu d'autres suggestions ???
Merci encore,
Céline
-----------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveSheet.PivotTables("Tableau croisé
dynamique3").PivotFields("Mois").CurrentPage <> Mois Then
ActiveChart.SeriesCollection(2).Select
ActiveChart.SeriesCollection(2).ChartType = xlLineMarkers
ActiveChart.SeriesCollection(2).Select
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
Mois = ActiveSheet.PivotTables("Tableau croisé
dynamique3").PivotFields("Mois").CurrentPage
End If
End Sub



"Daniel" a écrit dans le message de
news:%
Dans un module tu mets :
Public Mois
Dans le code de ta feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveSheet.PivotTables("Tableau croisé dynamique1"). _
PivotFields("Mois").CurrentPage <> Mois Then
' **************ICI ta macro ***************************
Mois = ActiveSheet.PivotTables("Tableau croisé
dynamique1"). _



PivotFields("Mois").CurrentPage
End If
End Sub

En adaptant le nom du tableau et le nom du champ.
Cordialement.
Daniel
"Céline Brien" a écrit dans le
message



de
news:
Bonjour Daniel,
Tu as raison. C'est la solution.
Sais-tu comment déclencher la macro lors du changement de mois
avec




le
bouton de champ Mois ???
Merci,
Céline

"Daniel" a écrit dans le message de
news:
Bonjour.
Il faut se servir de l'enregistreur de macros pour l'ensemble de
la





mise en
forme sans utiliser de graphique personnalisé.
Ré-appliquer la macro à chaque changement.
Cordialement.
Daniel
"Céline Brien" a écrit dans le
message



de
news: uOG3$
Bonjour tout le monde,
Le contexte
Un graphique basé sur les données d'un tableau croisé
dynamique






avec
les
mois en champ Page.
Sur l'axe des abscisses : les jours du mois.
Deux axes des ordonnées : la fréquentation et la température.
Histogramme pour la fréquentation. Courbes pour la
température.






Le problème
Si l'on change de mois, on perd la mise en forme. Le graphique
reprend


sa mise en forme par défaut. Un axe et histogramme.
Ma solution
J'ai créé un graphique personnalisé. Une macro sélectionne ce
graphique


personnalisé. La macro est déclenchée lorsque l'on sélectionne
l'onglet


de ce graphique.
Problème avec cette solution
Le fichier ne peut être utilisé sur un autre ordinateur, sauf
si






l'on
ajoute le graphique personnalisé au Excel de cet ordinateur.
Question
Avez-vous une autre solution à me proposer ?
Merci beaucoup de votre aide précieuse,
Céline