Bonjour.
Dans le code suivant, je veux récupérer la valeur d'un point d'une
série de graphique pour la mettre en étiquette :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim pt As Point
If Intersect(Target, [D3:D7]) Is Nothing Then Exit Sub
With ActiveSheet.ChartObjects("Graphique
1").Chart.SeriesCollection(1)
For i = 1 To .Points.Count
If .Points(i).DataLabel.Text = "#N/A" Then
.Points(i).DataLabel.Text = ""
Else
Var = .Values
.Points(i).DataLabel.Text = Var(i)
End If
Next i
End With
End Sub
La macro fonctionne.
Par contre si je mets directement :
.Points(i).DataLabel.Text = .Values(i)
j'obtiens une erreur 451 :
"La rpocédure Property Let n'est pas définie et la procédure Get n'a
pas renvoyé d'objet".
Je suis obligé depasser par :
Var = .Values
.Points(i).DataLabel.Text = Var(i)
Merci de m'expliquer pourquoi.
Cordialement.
Daniel
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour Daniel,
Tu n'utilises pas la bonne propriété...
Essaie comme ceci .Points(i).DataLabel.Text = .XValues(i)
C'était en passant !
"Daniel.C" a écrit dans le message de groupe de discussion :
Bonjour. Dans le code suivant, je veux récupérer la valeur d'un point d'une série de graphique pour la mettre en étiquette :
Private Sub Worksheet_Change(ByVal Target As Range) Dim pt As Point If Intersect(Target, [D3:D7]) Is Nothing Then Exit Sub With ActiveSheet.ChartObjects("Graphique 1").Chart.SeriesCollection(1) For i = 1 To .Points.Count If .Points(i).DataLabel.Text = "#N/A" Then .Points(i).DataLabel.Text = "" Else Var = .Values .Points(i).DataLabel.Text = Var(i) End If Next i End With End Sub
La macro fonctionne. Par contre si je mets directement : .Points(i).DataLabel.Text = .Values(i) j'obtiens une erreur 451 : "La rpocédure Property Let n'est pas définie et la procédure Get n'a pas renvoyé d'objet". Je suis obligé depasser par : Var = .Values .Points(i).DataLabel.Text = Var(i) Merci de m'expliquer pourquoi. Cordialement. Daniel
Bonjour Daniel,
Tu n'utilises pas la bonne propriété...
Essaie comme ceci
.Points(i).DataLabel.Text = .XValues(i)
C'était en passant !
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de groupe de discussion :
eHmZFe8UKHA.2932@TK2MSFTNGP04.phx.gbl...
Bonjour.
Dans le code suivant, je veux récupérer la valeur d'un point d'une
série de graphique pour la mettre en étiquette :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim pt As Point
If Intersect(Target, [D3:D7]) Is Nothing Then Exit Sub
With ActiveSheet.ChartObjects("Graphique
1").Chart.SeriesCollection(1)
For i = 1 To .Points.Count
If .Points(i).DataLabel.Text = "#N/A" Then
.Points(i).DataLabel.Text = ""
Else
Var = .Values
.Points(i).DataLabel.Text = Var(i)
End If
Next i
End With
End Sub
La macro fonctionne.
Par contre si je mets directement :
.Points(i).DataLabel.Text = .Values(i)
j'obtiens une erreur 451 :
"La rpocédure Property Let n'est pas définie et la procédure Get n'a
pas renvoyé d'objet".
Je suis obligé depasser par :
Var = .Values
.Points(i).DataLabel.Text = Var(i)
Merci de m'expliquer pourquoi.
Cordialement.
Daniel
Essaie comme ceci .Points(i).DataLabel.Text = .XValues(i)
C'était en passant !
"Daniel.C" a écrit dans le message de groupe de discussion :
Bonjour. Dans le code suivant, je veux récupérer la valeur d'un point d'une série de graphique pour la mettre en étiquette :
Private Sub Worksheet_Change(ByVal Target As Range) Dim pt As Point If Intersect(Target, [D3:D7]) Is Nothing Then Exit Sub With ActiveSheet.ChartObjects("Graphique 1").Chart.SeriesCollection(1) For i = 1 To .Points.Count If .Points(i).DataLabel.Text = "#N/A" Then .Points(i).DataLabel.Text = "" Else Var = .Values .Points(i).DataLabel.Text = Var(i) End If Next i End With End Sub
La macro fonctionne. Par contre si je mets directement : .Points(i).DataLabel.Text = .Values(i) j'obtiens une erreur 451 : "La rpocédure Property Let n'est pas définie et la procédure Get n'a pas renvoyé d'objet". Je suis obligé depasser par : Var = .Values .Points(i).DataLabel.Text = Var(i) Merci de m'expliquer pourquoi. Cordialement. Daniel
Daniel.C
Bonjour Denis, "XValues" représente les valeurs d'abscisse. Ce sont les valeurs d'ordonnées qui m'intéressent. En notant : Var = .Values Je récupère bien un tableau avec ces valeurs, mais impossible d'utiliser directement Var = .Values(i) pour ne prendre qu'une seule valeur. Daniel
Bonjour Daniel,
Tu n'utilises pas la bonne propriété...
Essaie comme ceci .Points(i).DataLabel.Text = .XValues(i)
C'était en passant !
"Daniel.C" a écrit dans le message de groupe de discussion : Bonjour. Dans le code suivant, je veux récupérer la valeur d'un point d'une série de graphique pour la mettre en étiquette :
Private Sub Worksheet_Change(ByVal Target As Range) Dim pt As Point If Intersect(Target, [D3:D7]) Is Nothing Then Exit Sub With ActiveSheet.ChartObjects("Graphique 1").Chart.SeriesCollection(1) For i = 1 To .Points.Count If .Points(i).DataLabel.Text = "#N/A" Then .Points(i).DataLabel.Text = "" Else Var = .Values .Points(i).DataLabel.Text = Var(i) End If Next i End With End Sub
La macro fonctionne. Par contre si je mets directement : .Points(i).DataLabel.Text = .Values(i) j'obtiens une erreur 451 : "La rpocédure Property Let n'est pas définie et la procédure Get n'a pas renvoyé d'objet". Je suis obligé depasser par : Var = .Values .Points(i).DataLabel.Text = Var(i) Merci de m'expliquer pourquoi. Cordialement. Daniel
Bonjour Denis,
"XValues" représente les valeurs d'abscisse. Ce sont les valeurs
d'ordonnées qui m'intéressent.
En notant :
Var = .Values
Je récupère bien un tableau avec ces valeurs, mais impossible
d'utiliser directement Var = .Values(i) pour ne prendre qu'une seule
valeur.
Daniel
Bonjour Daniel,
Tu n'utilises pas la bonne propriété...
Essaie comme ceci
.Points(i).DataLabel.Text = .XValues(i)
C'était en passant !
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de groupe de
discussion : eHmZFe8UKHA.2932@TK2MSFTNGP04.phx.gbl...
Bonjour.
Dans le code suivant, je veux récupérer la valeur d'un point d'une
série de graphique pour la mettre en étiquette :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim pt As Point
If Intersect(Target, [D3:D7]) Is Nothing Then Exit Sub
With ActiveSheet.ChartObjects("Graphique
1").Chart.SeriesCollection(1)
For i = 1 To .Points.Count
If .Points(i).DataLabel.Text = "#N/A" Then
.Points(i).DataLabel.Text = ""
Else
Var = .Values
.Points(i).DataLabel.Text = Var(i)
End If
Next i
End With
End Sub
La macro fonctionne.
Par contre si je mets directement :
.Points(i).DataLabel.Text = .Values(i)
j'obtiens une erreur 451 :
"La rpocédure Property Let n'est pas définie et la procédure Get n'a
pas renvoyé d'objet".
Je suis obligé depasser par :
Var = .Values
.Points(i).DataLabel.Text = Var(i)
Merci de m'expliquer pourquoi.
Cordialement.
Daniel
Bonjour Denis, "XValues" représente les valeurs d'abscisse. Ce sont les valeurs d'ordonnées qui m'intéressent. En notant : Var = .Values Je récupère bien un tableau avec ces valeurs, mais impossible d'utiliser directement Var = .Values(i) pour ne prendre qu'une seule valeur. Daniel
Bonjour Daniel,
Tu n'utilises pas la bonne propriété...
Essaie comme ceci .Points(i).DataLabel.Text = .XValues(i)
C'était en passant !
"Daniel.C" a écrit dans le message de groupe de discussion : Bonjour. Dans le code suivant, je veux récupérer la valeur d'un point d'une série de graphique pour la mettre en étiquette :
Private Sub Worksheet_Change(ByVal Target As Range) Dim pt As Point If Intersect(Target, [D3:D7]) Is Nothing Then Exit Sub With ActiveSheet.ChartObjects("Graphique 1").Chart.SeriesCollection(1) For i = 1 To .Points.Count If .Points(i).DataLabel.Text = "#N/A" Then .Points(i).DataLabel.Text = "" Else Var = .Values .Points(i).DataLabel.Text = Var(i) End If Next i End With End Sub
La macro fonctionne. Par contre si je mets directement : .Points(i).DataLabel.Text = .Values(i) j'obtiens une erreur 451 : "La rpocédure Property Let n'est pas définie et la procédure Get n'a pas renvoyé d'objet". Je suis obligé depasser par : Var = .Values .Points(i).DataLabel.Text = Var(i) Merci de m'expliquer pourquoi. Cordialement. Daniel
michdenis
Ceci fonctionne chez moi,
Dim X As SeriesCollection Set X = ActiveSheet.ChartObjects("Graphique 2").Chart.SeriesCollection t = X(1).Values(3)
Ou pour ton exemple : .Points(i).DataLabel.Text = X(1).Values(i)
"Daniel.C" a écrit dans le message de groupe de discussion : Bonjour. Dans le code suivant, je veux récupérer la valeur d'un point d'une série de graphique pour la mettre en étiquette :
Private Sub Worksheet_Change(ByVal Target As Range) Dim pt As Point If Intersect(Target, [D3:D7]) Is Nothing Then Exit Sub With ActiveSheet.ChartObjects("Graphique 1").Chart.SeriesCollection(1) For i = 1 To .Points.Count If .Points(i).DataLabel.Text = "#N/A" Then .Points(i).DataLabel.Text = "" Else Var = .Values .Points(i).DataLabel.Text = Var(i) End If Next i End With End Sub
La macro fonctionne. Par contre si je mets directement : .Points(i).DataLabel.Text = .Values(i) j'obtiens une erreur 451 : "La rpocédure Property Let n'est pas définie et la procédure Get n'a pas renvoyé d'objet". Je suis obligé depasser par : Var = .Values .Points(i).DataLabel.Text = Var(i) Merci de m'expliquer pourquoi. Cordialement. Daniel
Ceci fonctionne chez moi,
Dim X As SeriesCollection
Set X = ActiveSheet.ChartObjects("Graphique 2").Chart.SeriesCollection
t = X(1).Values(3)
Ou pour ton exemple :
.Points(i).DataLabel.Text = X(1).Values(i)
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de groupe de
discussion : eHmZFe8UKHA.2932@TK2MSFTNGP04.phx.gbl...
Bonjour.
Dans le code suivant, je veux récupérer la valeur d'un point d'une
série de graphique pour la mettre en étiquette :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim pt As Point
If Intersect(Target, [D3:D7]) Is Nothing Then Exit Sub
With ActiveSheet.ChartObjects("Graphique
1").Chart.SeriesCollection(1)
For i = 1 To .Points.Count
If .Points(i).DataLabel.Text = "#N/A" Then
.Points(i).DataLabel.Text = ""
Else
Var = .Values
.Points(i).DataLabel.Text = Var(i)
End If
Next i
End With
End Sub
La macro fonctionne.
Par contre si je mets directement :
.Points(i).DataLabel.Text = .Values(i)
j'obtiens une erreur 451 :
"La rpocédure Property Let n'est pas définie et la procédure Get n'a
pas renvoyé d'objet".
Je suis obligé depasser par :
Var = .Values
.Points(i).DataLabel.Text = Var(i)
Merci de m'expliquer pourquoi.
Cordialement.
Daniel
Dim X As SeriesCollection Set X = ActiveSheet.ChartObjects("Graphique 2").Chart.SeriesCollection t = X(1).Values(3)
Ou pour ton exemple : .Points(i).DataLabel.Text = X(1).Values(i)
"Daniel.C" a écrit dans le message de groupe de discussion : Bonjour. Dans le code suivant, je veux récupérer la valeur d'un point d'une série de graphique pour la mettre en étiquette :
Private Sub Worksheet_Change(ByVal Target As Range) Dim pt As Point If Intersect(Target, [D3:D7]) Is Nothing Then Exit Sub With ActiveSheet.ChartObjects("Graphique 1").Chart.SeriesCollection(1) For i = 1 To .Points.Count If .Points(i).DataLabel.Text = "#N/A" Then .Points(i).DataLabel.Text = "" Else Var = .Values .Points(i).DataLabel.Text = Var(i) End If Next i End With End Sub
La macro fonctionne. Par contre si je mets directement : .Points(i).DataLabel.Text = .Values(i) j'obtiens une erreur 451 : "La rpocédure Property Let n'est pas définie et la procédure Get n'a pas renvoyé d'objet". Je suis obligé depasser par : Var = .Values .Points(i).DataLabel.Text = Var(i) Merci de m'expliquer pourquoi. Cordialement. Daniel
Daniel.C
Microclimat (XL2007) ? Voici mon code remanié avec le tien :
Sub test() With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1) Set X = ActiveSheet.ChartObjects("Graphique 1").Chart.SeriesCollection For i = 1 To .Points.Count .Points(i).DataLabel.Text = X(1).Values(i) Next i End With End Sub
Le plantage se fait dès la première valeur de i (1). Le fichier est à l'adresse : http://www.cijoint.fr/cjlink.php?file=cj200910/cijzifntJv.xls Daniel
Ceci fonctionne chez moi,
Dim X As SeriesCollection Set X = ActiveSheet.ChartObjects("Graphique 2").Chart.SeriesCollection t = X(1).Values(3)
Ou pour ton exemple : .Points(i).DataLabel.Text = X(1).Values(i)
"Daniel.C" a écrit dans le message de groupe de discussion : Bonjour. Dans le code suivant, je veux récupérer la valeur d'un point d'une série de graphique pour la mettre en étiquette :
Private Sub Worksheet_Change(ByVal Target As Range) Dim pt As Point If Intersect(Target, [D3:D7]) Is Nothing Then Exit Sub With ActiveSheet.ChartObjects("Graphique 1").Chart.SeriesCollection(1) For i = 1 To .Points.Count If .Points(i).DataLabel.Text = "#N/A" Then .Points(i).DataLabel.Text = "" Else Var = .Values .Points(i).DataLabel.Text = Var(i) End If Next i End With End Sub
La macro fonctionne. Par contre si je mets directement : .Points(i).DataLabel.Text = .Values(i) j'obtiens une erreur 451 : "La rpocédure Property Let n'est pas définie et la procédure Get n'a pas renvoyé d'objet". Je suis obligé depasser par : Var = .Values .Points(i).DataLabel.Text = Var(i) Merci de m'expliquer pourquoi. Cordialement. Daniel
Microclimat (XL2007) ?
Voici mon code remanié avec le tien :
Sub test()
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
Set X = ActiveSheet.ChartObjects("Graphique
1").Chart.SeriesCollection
For i = 1 To .Points.Count
.Points(i).DataLabel.Text = X(1).Values(i)
Next i
End With
End Sub
Le plantage se fait dès la première valeur de i (1).
Le fichier est à l'adresse :
http://www.cijoint.fr/cjlink.php?file=cj200910/cijzifntJv.xls
Daniel
Ceci fonctionne chez moi,
Dim X As SeriesCollection
Set X = ActiveSheet.ChartObjects("Graphique 2").Chart.SeriesCollection
t = X(1).Values(3)
Ou pour ton exemple :
.Points(i).DataLabel.Text = X(1).Values(i)
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de groupe de
discussion : eHmZFe8UKHA.2932@TK2MSFTNGP04.phx.gbl...
Bonjour.
Dans le code suivant, je veux récupérer la valeur d'un point d'une
série de graphique pour la mettre en étiquette :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim pt As Point
If Intersect(Target, [D3:D7]) Is Nothing Then Exit Sub
With ActiveSheet.ChartObjects("Graphique
1").Chart.SeriesCollection(1)
For i = 1 To .Points.Count
If .Points(i).DataLabel.Text = "#N/A" Then
.Points(i).DataLabel.Text = ""
Else
Var = .Values
.Points(i).DataLabel.Text = Var(i)
End If
Next i
End With
End Sub
La macro fonctionne.
Par contre si je mets directement :
.Points(i).DataLabel.Text = .Values(i)
j'obtiens une erreur 451 :
"La rpocédure Property Let n'est pas définie et la procédure Get n'a
pas renvoyé d'objet".
Je suis obligé depasser par :
Var = .Values
.Points(i).DataLabel.Text = Var(i)
Merci de m'expliquer pourquoi.
Cordialement.
Daniel
Microclimat (XL2007) ? Voici mon code remanié avec le tien :
Sub test() With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1) Set X = ActiveSheet.ChartObjects("Graphique 1").Chart.SeriesCollection For i = 1 To .Points.Count .Points(i).DataLabel.Text = X(1).Values(i) Next i End With End Sub
Le plantage se fait dès la première valeur de i (1). Le fichier est à l'adresse : http://www.cijoint.fr/cjlink.php?file=cj200910/cijzifntJv.xls Daniel
Ceci fonctionne chez moi,
Dim X As SeriesCollection Set X = ActiveSheet.ChartObjects("Graphique 2").Chart.SeriesCollection t = X(1).Values(3)
Ou pour ton exemple : .Points(i).DataLabel.Text = X(1).Values(i)
"Daniel.C" a écrit dans le message de groupe de discussion : Bonjour. Dans le code suivant, je veux récupérer la valeur d'un point d'une série de graphique pour la mettre en étiquette :
Private Sub Worksheet_Change(ByVal Target As Range) Dim pt As Point If Intersect(Target, [D3:D7]) Is Nothing Then Exit Sub With ActiveSheet.ChartObjects("Graphique 1").Chart.SeriesCollection(1) For i = 1 To .Points.Count If .Points(i).DataLabel.Text = "#N/A" Then .Points(i).DataLabel.Text = "" Else Var = .Values .Points(i).DataLabel.Text = Var(i) End If Next i End With End Sub
La macro fonctionne. Par contre si je mets directement : .Points(i).DataLabel.Text = .Values(i) j'obtiens une erreur 451 : "La rpocédure Property Let n'est pas définie et la procédure Get n'a pas renvoyé d'objet". Je suis obligé depasser par : Var = .Values .Points(i).DataLabel.Text = Var(i) Merci de m'expliquer pourquoi. Cordialement. Daniel
michdenis
http://cjoint.com/?kxtsDTiSpH
"Daniel.C" a écrit dans le message de groupe de discussion : uMmVK1$ Microclimat (XL2007) ? Voici mon code remanié avec le tien :
Sub test() With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1) Set X = ActiveSheet.ChartObjects("Graphique 1").Chart.SeriesCollection For i = 1 To .Points.Count .Points(i).DataLabel.Text = X(1).Values(i) Next i End With End Sub
Le plantage se fait dès la première valeur de i (1). Le fichier est à l'adresse : http://www.cijoint.fr/cjlink.php?file=cj200910/cijzifntJv.xls Daniel
Ceci fonctionne chez moi,
Dim X As SeriesCollection Set X = ActiveSheet.ChartObjects("Graphique 2").Chart.SeriesCollection t = X(1).Values(3)
Ou pour ton exemple : .Points(i).DataLabel.Text = X(1).Values(i)
"Daniel.C" a écrit dans le message de groupe de discussion : Bonjour. Dans le code suivant, je veux récupérer la valeur d'un point d'une série de graphique pour la mettre en étiquette :
Private Sub Worksheet_Change(ByVal Target As Range) Dim pt As Point If Intersect(Target, [D3:D7]) Is Nothing Then Exit Sub With ActiveSheet.ChartObjects("Graphique 1").Chart.SeriesCollection(1) For i = 1 To .Points.Count If .Points(i).DataLabel.Text = "#N/A" Then .Points(i).DataLabel.Text = "" Else Var = .Values .Points(i).DataLabel.Text = Var(i) End If Next i End With End Sub
La macro fonctionne. Par contre si je mets directement : .Points(i).DataLabel.Text = .Values(i) j'obtiens une erreur 451 : "La rpocédure Property Let n'est pas définie et la procédure Get n'a pas renvoyé d'objet". Je suis obligé depasser par : Var = .Values .Points(i).DataLabel.Text = Var(i) Merci de m'expliquer pourquoi. Cordialement. Daniel
http://cjoint.com/?kxtsDTiSpH
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de groupe de discussion :
uMmVK1$UKHA.4780@TK2MSFTNGP05.phx.gbl...
Microclimat (XL2007) ?
Voici mon code remanié avec le tien :
Sub test()
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
Set X = ActiveSheet.ChartObjects("Graphique
1").Chart.SeriesCollection
For i = 1 To .Points.Count
.Points(i).DataLabel.Text = X(1).Values(i)
Next i
End With
End Sub
Le plantage se fait dès la première valeur de i (1).
Le fichier est à l'adresse :
http://www.cijoint.fr/cjlink.php?file=cj200910/cijzifntJv.xls
Daniel
Ceci fonctionne chez moi,
Dim X As SeriesCollection
Set X = ActiveSheet.ChartObjects("Graphique 2").Chart.SeriesCollection
t = X(1).Values(3)
Ou pour ton exemple :
.Points(i).DataLabel.Text = X(1).Values(i)
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de groupe de
discussion : eHmZFe8UKHA.2932@TK2MSFTNGP04.phx.gbl...
Bonjour.
Dans le code suivant, je veux récupérer la valeur d'un point d'une
série de graphique pour la mettre en étiquette :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim pt As Point
If Intersect(Target, [D3:D7]) Is Nothing Then Exit Sub
With ActiveSheet.ChartObjects("Graphique
1").Chart.SeriesCollection(1)
For i = 1 To .Points.Count
If .Points(i).DataLabel.Text = "#N/A" Then
.Points(i).DataLabel.Text = ""
Else
Var = .Values
.Points(i).DataLabel.Text = Var(i)
End If
Next i
End With
End Sub
La macro fonctionne.
Par contre si je mets directement :
.Points(i).DataLabel.Text = .Values(i)
j'obtiens une erreur 451 :
"La rpocédure Property Let n'est pas définie et la procédure Get n'a
pas renvoyé d'objet".
Je suis obligé depasser par :
Var = .Values
.Points(i).DataLabel.Text = Var(i)
Merci de m'expliquer pourquoi.
Cordialement.
Daniel
"Daniel.C" a écrit dans le message de groupe de discussion : uMmVK1$ Microclimat (XL2007) ? Voici mon code remanié avec le tien :
Sub test() With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1) Set X = ActiveSheet.ChartObjects("Graphique 1").Chart.SeriesCollection For i = 1 To .Points.Count .Points(i).DataLabel.Text = X(1).Values(i) Next i End With End Sub
Le plantage se fait dès la première valeur de i (1). Le fichier est à l'adresse : http://www.cijoint.fr/cjlink.php?file=cj200910/cijzifntJv.xls Daniel
Ceci fonctionne chez moi,
Dim X As SeriesCollection Set X = ActiveSheet.ChartObjects("Graphique 2").Chart.SeriesCollection t = X(1).Values(3)
Ou pour ton exemple : .Points(i).DataLabel.Text = X(1).Values(i)
"Daniel.C" a écrit dans le message de groupe de discussion : Bonjour. Dans le code suivant, je veux récupérer la valeur d'un point d'une série de graphique pour la mettre en étiquette :
Private Sub Worksheet_Change(ByVal Target As Range) Dim pt As Point If Intersect(Target, [D3:D7]) Is Nothing Then Exit Sub With ActiveSheet.ChartObjects("Graphique 1").Chart.SeriesCollection(1) For i = 1 To .Points.Count If .Points(i).DataLabel.Text = "#N/A" Then .Points(i).DataLabel.Text = "" Else Var = .Values .Points(i).DataLabel.Text = Var(i) End If Next i End With End Sub
La macro fonctionne. Par contre si je mets directement : .Points(i).DataLabel.Text = .Values(i) j'obtiens une erreur 451 : "La rpocédure Property Let n'est pas définie et la procédure Get n'a pas renvoyé d'objet". Je suis obligé depasser par : Var = .Values .Points(i).DataLabel.Text = Var(i) Merci de m'expliquer pourquoi. Cordialement. Daniel
Daniel.C
Ca marche, merci. Daniel
http://cjoint.com/?kxtsDTiSpH
"Daniel.C" a écrit dans le message de groupe de discussion : uMmVK1$ Microclimat (XL2007) ? Voici mon code remanié avec le tien :
Sub test() With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1) Set X = ActiveSheet.ChartObjects("Graphique 1").Chart.SeriesCollection For i = 1 To .Points.Count .Points(i).DataLabel.Text = X(1).Values(i) Next i End With End Sub
Le plantage se fait dès la première valeur de i (1). Le fichier est à l'adresse : http://www.cijoint.fr/cjlink.php?file=cj200910/cijzifntJv.xls Daniel
Ceci fonctionne chez moi,
Dim X As SeriesCollection Set X = ActiveSheet.ChartObjects("Graphique 2").Chart.SeriesCollection t = X(1).Values(3)
Ou pour ton exemple : .Points(i).DataLabel.Text = X(1).Values(i)
"Daniel.C" a écrit dans le message de groupe de discussion : Bonjour. Dans le code suivant, je veux récupérer la valeur d'un point d'une série de graphique pour la mettre en étiquette :
Private Sub Worksheet_Change(ByVal Target As Range) Dim pt As Point If Intersect(Target, [D3:D7]) Is Nothing Then Exit Sub With ActiveSheet.ChartObjects("Graphique 1").Chart.SeriesCollection(1) For i = 1 To .Points.Count If .Points(i).DataLabel.Text = "#N/A" Then .Points(i).DataLabel.Text = "" Else Var = .Values .Points(i).DataLabel.Text = Var(i) End If Next i End With End Sub
La macro fonctionne. Par contre si je mets directement : .Points(i).DataLabel.Text = .Values(i) j'obtiens une erreur 451 : "La rpocédure Property Let n'est pas définie et la procédure Get n'a pas renvoyé d'objet". Je suis obligé depasser par : Var = .Values .Points(i).DataLabel.Text = Var(i) Merci de m'expliquer pourquoi. Cordialement. Daniel
Ca marche, merci.
Daniel
http://cjoint.com/?kxtsDTiSpH
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de groupe de
discussion : uMmVK1$UKHA.4780@TK2MSFTNGP05.phx.gbl...
Microclimat (XL2007) ?
Voici mon code remanié avec le tien :
Sub test()
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1)
Set X = ActiveSheet.ChartObjects("Graphique
1").Chart.SeriesCollection
For i = 1 To .Points.Count
.Points(i).DataLabel.Text = X(1).Values(i)
Next i
End With
End Sub
Le plantage se fait dès la première valeur de i (1).
Le fichier est à l'adresse :
http://www.cijoint.fr/cjlink.php?file=cj200910/cijzifntJv.xls
Daniel
Ceci fonctionne chez moi,
Dim X As SeriesCollection
Set X = ActiveSheet.ChartObjects("Graphique 2").Chart.SeriesCollection
t = X(1).Values(3)
Ou pour ton exemple :
.Points(i).DataLabel.Text = X(1).Values(i)
"Daniel.C" <dcolardelleZZZ@gmail.com> a écrit dans le message de groupe de
discussion : eHmZFe8UKHA.2932@TK2MSFTNGP04.phx.gbl...
Bonjour.
Dans le code suivant, je veux récupérer la valeur d'un point d'une
série de graphique pour la mettre en étiquette :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim pt As Point
If Intersect(Target, [D3:D7]) Is Nothing Then Exit Sub
With ActiveSheet.ChartObjects("Graphique
1").Chart.SeriesCollection(1)
For i = 1 To .Points.Count
If .Points(i).DataLabel.Text = "#N/A" Then
.Points(i).DataLabel.Text = ""
Else
Var = .Values
.Points(i).DataLabel.Text = Var(i)
End If
Next i
End With
End Sub
La macro fonctionne.
Par contre si je mets directement :
.Points(i).DataLabel.Text = .Values(i)
j'obtiens une erreur 451 :
"La rpocédure Property Let n'est pas définie et la procédure Get n'a
pas renvoyé d'objet".
Je suis obligé depasser par :
Var = .Values
.Points(i).DataLabel.Text = Var(i)
Merci de m'expliquer pourquoi.
Cordialement.
Daniel
"Daniel.C" a écrit dans le message de groupe de discussion : uMmVK1$ Microclimat (XL2007) ? Voici mon code remanié avec le tien :
Sub test() With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1) Set X = ActiveSheet.ChartObjects("Graphique 1").Chart.SeriesCollection For i = 1 To .Points.Count .Points(i).DataLabel.Text = X(1).Values(i) Next i End With End Sub
Le plantage se fait dès la première valeur de i (1). Le fichier est à l'adresse : http://www.cijoint.fr/cjlink.php?file=cj200910/cijzifntJv.xls Daniel
Ceci fonctionne chez moi,
Dim X As SeriesCollection Set X = ActiveSheet.ChartObjects("Graphique 2").Chart.SeriesCollection t = X(1).Values(3)
Ou pour ton exemple : .Points(i).DataLabel.Text = X(1).Values(i)
"Daniel.C" a écrit dans le message de groupe de discussion : Bonjour. Dans le code suivant, je veux récupérer la valeur d'un point d'une série de graphique pour la mettre en étiquette :
Private Sub Worksheet_Change(ByVal Target As Range) Dim pt As Point If Intersect(Target, [D3:D7]) Is Nothing Then Exit Sub With ActiveSheet.ChartObjects("Graphique 1").Chart.SeriesCollection(1) For i = 1 To .Points.Count If .Points(i).DataLabel.Text = "#N/A" Then .Points(i).DataLabel.Text = "" Else Var = .Values .Points(i).DataLabel.Text = Var(i) End If Next i End With End Sub
La macro fonctionne. Par contre si je mets directement : .Points(i).DataLabel.Text = .Values(i) j'obtiens une erreur 451 : "La rpocédure Property Let n'est pas définie et la procédure Get n'a pas renvoyé d'objet". Je suis obligé depasser par : Var = .Values .Points(i).DataLabel.Text = Var(i) Merci de m'expliquer pourquoi. Cordialement. Daniel