graphique qui devrait changer selon la ligne

Le
Pierre F.
Bonjour à toutes et tous!

J'ai créé un graphique dans feuille de données.

colonne A = une date
colonnes B à Z, des données (nombres entiers) ou rien (la ligne est
parfois incomplète)

Je souhaite, lorsque je clique sur une ligne, que le graphique soit celui=

des données de cette ligne (il y a plus de 100 lignes)

J'ai la macro suivante (trouvée sur ce forum) dans le code de la feuill=
e
qui reprend automatiquement le contenu de la colonne A et le met en titre=

dans le graphique, mais les données de la ligne ne suivent pas :-(

Comment faire pour qu'à chaque clic, les contenus de la ligne soit
représentées dans le graphique?


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

http://cjoint.com/?lksuzLvsKh

Merci pour votre aide.

Pierre F.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pierre F.
Le #20531221
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.
Daniel.C
Le #20530751
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.


Pierre F.
Le #20530981
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.
Daniel.C
Le #20531211
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.


Pierre F.
Le #20531391
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.
Publicité
Poster une réponse
Anonyme