XL 2013 Labels dynamiques error (une ligne de code pose problème)

ZAKAO

XLDnaute Junior
Bonjour tout le monde,

J'espère sincèrement que vous allez bien.

Je vous contacte car j'ai un problème sur l'écriture d'une ligne d'un code. Voici le code avec la ligne qui pose problème en rouge:
F_SYNT.ChartObjects("G_AV").Activate

With ActiveChart

'Taille de l'axe
.Axes(xlCategory).MinimumScale = F_REGLAGE.Range("DEBUT")
.Axes(xlCategory).MaximumScale = F_REGLAGE.Range("FIN")

'Paramêtres des différentes séries
'---Avancement
With .FullSeriesCollection(1)
.XValues = "='Jalons 2'!$C$2:$C$" & n + 3
.Values = "='Jalons 2'!$G$2:$G$" & n + 3
.ErrorBar Direction:=xlX, Include:=xlErrorBarIncludePlusValues, Type:=xlErrorBarTypeCustom, Amount:="='Jalons 2'!$F$2:$F$" & n + 3
.DataLabels.Format.TextFrame2.TextRange.InsertChartField msoChartFieldRange, "='Jalons 2'!$A$2:$A$" & n + 3, 0
End With

'---Tasks
With .FullSeriesCollection(2)
.XValues = "='Jalons 2'!$C$2:$C$" & n + 3
.Values = "='Jalons 2'!$G$2:$G$" & n + 3
.ErrorBar Direction:=xlX, Include:=xlErrorBarIncludePlusValues, Type:=xlErrorBarTypeCustom, Amount:="='Jalons 2'!$E$2:$E$" & n + 3
.ErrorBar Direction:=xlY, Include:=xlErrorBarIncludeMinusValues, Type:=xlErrorBarTypeCustom, Amount:="", MinusValues:="='Jalons 2'!$H$2:$H$" & n + 3
.DataLabels.Format.TextFrame2.TextRange.InsertChartField msoChartFieldRange, "='Jalons 2'!$A$2:$A$" & n + 3, 0
End With

'---Milestones
With .FullSeriesCollection(3)
.XValues = "='Jalons 2'!$Q$2:$Q$" & n + 5
.Values = "='Jalons 2'!$R$2:$R$" & n + 5
.Points(n + 3).Format.Fill.ForeColor.RGB = RGB(192, 0, 0)
.DataLabels.Format.TextFrame2.TextRange.InsertChartField msoChartFieldRange, "='Jalons 2'!$P$2:$P$" & n + 5, 0
End With

'---Avancement 2
With .FullSeriesCollection(4)
.XValues = "='Jalons 2'!$I$2:$I$" & n + 3
.Values = "='Jalons 2'!$M$2:$M$" & n + 3
.ErrorBar Direction:=xlX, Include:=xlErrorBarIncludePlusValues, Type:=xlErrorBarTypeCustom, Amount:="='Jalons 2'!$L$2:$L$" & n + 3
.DataLabels.Format.TextFrame2.TextRange.InsertChartField msoChartFieldRange, "='Jalons 2'!$A$2:$A$" & n + 3, 0
End With

'---Tasks 2
With .FullSeriesCollection(5)
.XValues = "='Jalons 2'!$I$2:$I$" & n + 3
.Values = "='Jalons 2'!$M$2:$M$" & n + 3
.ErrorBar Direction:=xlX, Include:=xlErrorBarIncludePlusValues, Type:=xlErrorBarTypeCustom, Amount:="='Jalons 2'!$K$2:$K$" & n + 3
.ErrorBar Direction:=xlY, Include:=xlErrorBarIncludeMinusValues, Type:=xlErrorBarTypeCustom, Amount:="", MinusValues:="='Jalons 2'!$N$2:$N$" & n + 3
.DataLabels.Format.TextFrame2.TextRange.InsertChartField msoChartFieldRange, "='Jalons 2'!$A$2:$A$" & n + 3, 0
End With

'---Milestones 2
With .FullSeriesCollection(6)
.XValues = "='Jalons 2'!$S$3:$S$" & n + 4
.Values = "='Jalons 2'!$T$2:$T$" & n + 4
.Points(2).Format.Fill.ForeColor.RGB = RGB(0, 192, 0)
.DataLabels.Format.TextFrame2.TextRange.InsertChartField msoChartFieldRange, "='Jalons 2'!$P$2:$P$" & n + 4, 0
End With

End With

'Opti
With Application: .ScreenUpdating = True: .Calculation = xlAutomatic: End With

End Sub
Le problème survient car cette proportion est dynamique.
"='Jalons 2'!$P$2:$P$" & n + 4
Quelqu'un aurait-il une solution svp ?

Je vous remercie d'avance en vous souhaitant une agréable fin d'après-midi.

Bien cordialement,
ZAKAO
 
Solution
Bonjour,
Impossible de reproduire le problème, car hors contexte cela génère des erreurs autres, évidemment.
Alors un peu au hasard, vous pourriez essayer :
VB:
Remplacer :
.DataLabels.Format.TextFrame2.TextRange.InsertChartField msoChartFieldRange, "='Jalons 2'!$A$2:$A$" & n + 3, 0
par
Set Plage = Sheets("Jalons 2").Range("$A$2:$A$" & n)
.DataLabels.Format.TextFrame2.TextRange.InsertChartField msoChartFieldRange, Plage, 0
ou par
Set Plage = Sheets("Jalons 2").Range("$A$2:$A$" & n)
.DataLabels.Format.TextFrame2.TextRange.InsertChartField msoChartFieldRange,"=" & Plage, 0
Je reconnais que le manque de fichier pose un problème et je m'en excuse. Il se trouve que j'ai trouvé la solution.

Il me manquait ce type de ligne qui...

ZAKAO

XLDnaute Junior
Bonjour Zakao,
Ou votre code donné ci dessus n'est pas complet
Ou la variable "n" est une variable public mais qu'on ne voit pas, et dont on ne connait pas la valeur
Ou la variable "n" n'a pas d'affectation, d'où l'erreur.
Bonjour @sylvanu,

En effet, je n'ai pas joint le code en entier.

"n" ici est une variable de type Integer

C'est cette variable qui porte le nombre de valeurs présents dans le nuage à point. Dans mon code, n est égal à 6.

Merci.
 
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Impossible de reproduire le problème, car hors contexte cela génère des erreurs autres, évidemment.
Alors un peu au hasard, vous pourriez essayer :
VB:
Remplacer :
.DataLabels.Format.TextFrame2.TextRange.InsertChartField msoChartFieldRange, "='Jalons 2'!$A$2:$A$" & n + 3, 0
par
Set Plage = Sheets("Jalons 2").Range("$A$2:$A$" & n)
.DataLabels.Format.TextFrame2.TextRange.InsertChartField msoChartFieldRange, Plage, 0
ou par
Set Plage = Sheets("Jalons 2").Range("$A$2:$A$" & n)
.DataLabels.Format.TextFrame2.TextRange.InsertChartField msoChartFieldRange,"=" & Plage, 0
 

ZAKAO

XLDnaute Junior
Bonjour,
Impossible de reproduire le problème, car hors contexte cela génère des erreurs autres, évidemment.
Alors un peu au hasard, vous pourriez essayer :
VB:
Remplacer :
.DataLabels.Format.TextFrame2.TextRange.InsertChartField msoChartFieldRange, "='Jalons 2'!$A$2:$A$" & n + 3, 0
par
Set Plage = Sheets("Jalons 2").Range("$A$2:$A$" & n)
.DataLabels.Format.TextFrame2.TextRange.InsertChartField msoChartFieldRange, Plage, 0
ou par
Set Plage = Sheets("Jalons 2").Range("$A$2:$A$" & n)
.DataLabels.Format.TextFrame2.TextRange.InsertChartField msoChartFieldRange,"=" & Plage, 0
Je reconnais que le manque de fichier pose un problème et je m'en excuse. Il se trouve que j'ai trouvé la solution.

Il me manquait ce type de ligne qui déclare le label et qui l'affiche. Il résout le bug qui déclare qu'il n'arrive pas à accéder au paramètre "count" du datalabel car mon code avait supprimer chacune de ces options.
VB:
objChart.SeriesCollection(1).ApplyDataLabels AutoText:=True, LegendKey:= _
True, ShowSeriesName:=True, ShowCategoryName:=True, ShowValue:=True, _
ShowPercentage:=True, ShowBubbleSize:=True

Le problème ne venait donc pas de la syntaxe alors que je pensais que c'était le cas au début car j'en fais encore souvent.

Je vous remercie pour votre aide :)
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 094
Messages
2 085 242
Membres
102 833
dernier inscrit
Hassna