Probleme affichage graphique en VBA

nlz Messages postés 16 Date d'inscription dimanche 16 mars 2008 Statut Membre Dernière intervention 3 juin 2011 - 28 mai 2011 à 17:22
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 28 mai 2011 à 18:12
Bonjour ,

je me suis servi d'un code deja créé pour l'adapter a mon exercice, cependant il ne s'execute pas jusuqu'a la fin et je n'arrive pas a savoir ce que je dois changer.

Mon code but sur la fonction : .SeriesCollection(1).XValues = Tableau() 'Abscisses

Pourriez vous m'éclairir un peu?

Merci d'avance.

Sub chart2()

Dim i As Long
Dim j As Long
Dim k As Long

Dim Tableau(1 To 26) As Date, Tableau2(1 To 26) As Integer

j = 1
k = 2

For i = 3 To 26
Tableau(i) = Cells(i, j)
Next i

'Création d'un tableau pour les Ordonnées
For i = 3 To 26
Tableau2(i) = Cells(i, k)
Next i

'Création graphique
Charts.Add
'Définit la localisation du graphique:
'dans la feuille de calcul Feuil1 pour cet exemple
ActiveChart.Location _
Where:=xlLocationAsObject, Name:="Feuil1"

'Ajoute une série dans le graphique

With ActiveChart
.SeriesCollection.newseries
.SeriesCollection(1).XValues = Tableau() 'Abscisses
.SeriesCollection(1).Values = Tableau2() 'Ordonnées
'Définit le type (Courbe)
.ChartType = xlXYScatterLines
End With

End Sub

1 réponse

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
28 mai 2011 à 18:12
Salut

Comme il s'agit d'objets (et de simples variables), peut-être faut-il utiliser Set en tête de ligne.
Essaye
Set .SeriesCollection(1).XValues = Tableau()


Si tu ajoutes une série, tu n'es pas sûr qu'elle soit la première, donc SeriesCollection(1) = rien de moins sûr
Il vaut mieux associer un objet à ta nouvelle série.
Essaye ce genre de code :
    Dim NouvelleSerie As Series

    Set NouvelleSerie = ActiveChart.SeriesCollection.NewSeries
    With NouvelleSerie
        .XValues = Tableau() 'Abscisses
        .Values = Tableau2() 'Ordonnées
        'Définit le type (Courbe)
        .ChartType = xlXYScatterLines
    End With

La prochaine fois, utilise la coloration syntaxique (3ème icône à droite) = plus facile à lire et conserve les indentations.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Rejoignez-nous