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

graphique qui devrait changer selon la ligne

5 réponses
Avatar
Pierre F.
Bonjour =E0 toutes et tous!

J'ai cr=E9=E9 un graphique dans feuille de donn=E9es.

colonne A =3D une date
colonnes B =E0 Z, des donn=E9es (nombres entiers) ou rien (la ligne est=20
parfois incompl=E8te)

Je souhaite, lorsque je clique sur une ligne, que le graphique soit celui=
=20
des donn=E9es de cette ligne (il y a plus de 100 lignes)

J'ai la macro suivante (trouv=E9e sur ce forum) dans le code de la feuill=
e=20
qui reprend automatiquement le contenu de la colonne A et le met en titre=
=20
dans le graphique, mais les donn=E9es de la ligne ne suivent pas... :-(

Comment faire pour qu'=E0 chaque clic, les contenus de la ligne soit=20
repr=E9sent=E9es dans le graphique?

------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim isect As Range, myI As Long
Set isect =3D Intersect(Target, [montableau])
If isect Is Nothing Then Exit Sub
Me.ChartObjects(1).Visible =3D True
myI =3D ActiveCell.Row
ActiveWorkbook.Names("monindex").RefersTo =3D myI - 3
ChartObjects(1).Select
With ActiveChart
=2EHasTitle =3D True
=2EChartTitle.Text =3D Me.Cells(myI, 1)
End With
Application.EnableEvents =3D False
Target.Activate
Application.EnableEvents =3D True
End Sub
-------------------------

http://cjoint.com/?lksuzLvsKh

Merci pour votre aide.

Pierre F.

5 réponses

Avatar
Pierre F.
Daniel.C a écrit :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("A1", [A65000].End(xlUp))) Is Nothing The n
Exit Sub
With Sheets("Feuil2").ChartObjects(1).Chart
.ChartTitle.Text = [A1].Offset(Target.Row - 1)
.SeriesCollection(1).Values =
Application.Transpose(Range("B1:Z1").Offset(Target.Row - 1))
End With
End Sub



Merci pour cette réponse rapide...
qui me pose tout de même quelques problèmes:

Quand je clique sur une date de la colonne A, le code plante et me dit:

Erreur 1004
"Impossible de définir la propriété Value de la classe Séries"

Au débogage, j'ai la ligne jaune suivante:

.SeriesCollection(1).Values =
application.Transpose(Range("B1:Z1").Offset(Target.Row - 1))

Que faire?

De plus, mes données commençant en A4, puis-je sans autre changer par tout
A1 par A4 (et B1, Z1 par B4, Z4), y compris le [A1] ??

Merci.
Cordialement,
Pierre F.
Avatar
Daniel.C
Voila le code modifié :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("A4", [A65000].End(xlUp))) Is Nothing
Then Exit Sub
With Sheets("Feuil2").ChartObjects(1).Chart
.HasTitle = True
.ChartTitle.Text = [A4].Offset(Target.Row - 4)
.SeriesCollection(1).Values =
Application.Transpose(Range("B4:Z4").Offset(Target.Row - 4))
End With
End Sub

et le fichier avec lequel j'ai fait les tests :
http://www.cijoint.fr/cjlink.php?file=cj200911/cijD3Xj1tC.xls
Daniel

Daniel.C a écrit :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("A1", [A65000].End(xlUp))) Is Nothing Then
Exit Sub
With Sheets("Feuil2").ChartObjects(1).Chart
.ChartTitle.Text = [A1].Offset(Target.Row - 1)
.SeriesCollection(1).Values =
Application.Transpose(Range("B1:Z1").Offset(Target.Row - 1))
End With
End Sub



Merci pour cette réponse rapide...
qui me pose tout de même quelques problèmes:

Quand je clique sur une date de la colonne A, le code plante et me dit:

Erreur 1004
"Impossible de définir la propriété Value de la classe Séries"

Au débogage, j'ai la ligne jaune suivante:

.SeriesCollection(1).Values =
application.Transpose(Range("B1:Z1").Offset(Target.Row - 1))

Que faire?

De plus, mes données commençant en A4, puis-je sans autre changer partout A1
par A4 (et B1, Z1 par B4, Z4), y compris le [A1] ??

Merci.
Cordialement,
Pierre F.


Avatar
Pierre F.
Daniel.C a écrit :
> Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("A4", [A65000].End(xlUp))) Is Nothing The n
Exit Sub
With Sheets("Feuil2").ChartObjects(1).Chart
.HasTitle = True
.ChartTitle.Text = [A4].Offset(Target.Row - 4)
.SeriesCollection(1).Values =
Application.Transpose(Range("B4:Z4").Offset(Target.Row - 4))
End With
End Sub

et le fichier avec lequel j'ai fait les tests :
http://www.cijoint.fr/cjlink.php?file=cj200911/cijD3Xj1tC.xls



Génial ! Ça fonctionne très bien!

Un petit détail encore:

Le titre (une date) s'affiche en format "décimal"; comment le faire
s'afficher au format date.

Merci.

Cordialement,
Pierre F.
Avatar
Daniel.C
Essaie comme ça :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("A4", [A65000].End(xlUp))) Is Nothing
Then Exit Sub
With Sheets("Feuil2").ChartObjects(1).Chart
.HasTitle = True
.ChartTitle.Text = Format([A4].Offset(Target.Row - 4),
"dd/mm/yyyy")
.SeriesCollection(1).Values =
Application.Transpose(Range("B4:Z4").Offset(Target.Row - 4))
End With
End Sub

Daniel

Daniel.C a écrit :
> Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("A4", [A65000].End(xlUp))) Is Nothing Then
Exit Sub
With Sheets("Feuil2").ChartObjects(1).Chart
.HasTitle = True
.ChartTitle.Text = [A4].Offset(Target.Row - 4)
.SeriesCollection(1).Values =
Application.Transpose(Range("B4:Z4").Offset(Target.Row - 4))
End With
End Sub

et le fichier avec lequel j'ai fait les tests :
http://www.cijoint.fr/cjlink.php?file=cj200911/cijD3Xj1tC.xls



Génial ! Ça fonctionne très bien!

Un petit détail encore:

Le titre (une date) s'affiche en format "décimal"; comment le faire
s'afficher au format date.

Merci.

Cordialement,
Pierre F.


Avatar
Pierre F.
Daniel.C a écrit :
Essaie comme ça :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("A4", [A65000].End(xlUp))) Is Nothing The n
Exit Sub
With Sheets("Feuil2").ChartObjects(1).Chart
.HasTitle = True
.ChartTitle.Text = Format([A4].Offset(Target.Row - 4), "dd/mm/ yyyy")
.SeriesCollection(1).Values =
Application.Transpose(Range("B4:Z4").Offset(Target.Row - 4))
End With
End Sub



Magnifique; c'est exactement ça.

Mille mercis.

Cordialement,
Pierre F.