VBA - Graphique - Modifier la valeur d'un point

Bonjour,

J'ai un gros problème de graphique à résoudre. Je cherche à faire un nuage de point dont les valeurs sont rentrées par vba, aucune valeur dans les cellules. Attention, je cherche à ce que l'une des valeurs de ces points soit nulle (voir la PJ), pas à zero mais absente, ce qui permet de faire disparaitre la courbe du graphique à certains endroits.

1ere possibilité - Mettre les valeurs dans une Array

Les valeurs "" et vide ne fonctionnent pas. Les var tableaux ne passent dans SeriesCollection qu'à condition d'être dans certains formats

Fomats acceptés - Long, Integer

Formats refusés - Variant, Currency, String

2e possibilité - En rentrant les valeurs une par une dans chacun des points mais je n'ai jamais trouvé quelle était la propriété de l'objet point qui permet de changer la valeur de celui-ci.

Set pts = ActiveSheet.ChartObjects("Graphique 3").Chart.SeriesCollection(1).Points
pts(pts.Count).ApplyDataLabels Type:=xlShowValue

For i = 1 To pts.Count
    pts.Values(i) = 200000
Next i

J'ai mis un exemple en pièce jointe, je cherche à obtenir sur le graph2 la même représentation que sur le graph1.

Je vous remercie par avance pour ce problème qui m'est totalement insoluble.

J'espère vraiment que quelqu'un trouvera, çà me semble bien compliqué.

Bien cordialement

25classeur1.xlsm (17.23 Ko)

J'ai finis par trouver !

Il y a la possibilité de mettre la valeur Empty dans un Array à destination d'une serie graphique pourvu que la variable tableau soit en Variant. En Long comme en Integer la valeur Empty ne passe pas.

La valeur Empty est la valeur par défaut d'une var tableau en Variant.

On peut aussi l'écrire directement dans un Array

a_liste = Array(Empty, 1, 2, 3, 4, 5)

Rien de plus compliqué pour un point à valeur Null en début ou fin de graphique

Pour le cas d'un point à valeur null en milieu de courbe

Ici c'est un peu plus compliqué car avec l'Array suivant le point 3 est relié au point 5.

a_liste = Array(1, 2, 3, Empty, 5, 6)

Il faut alors tracer deux courbes dont l'une finis par Empty et l'autre commence par Empty,

a_liste = Array(1, 2, 3, Empty, Empty, Empty)
a_liste = Array(Empty, Empty, Empty, Empty, 5, 6)
Rechercher des sujets similaires à "vba graphique modifier valeur point"