VBA Création de graphique dans une boucle

Résolu/Fermé
Currahee Messages postés 18 Date d'inscription jeudi 13 octobre 2005 Statut Membre Dernière intervention 20 février 2008 - 7 juin 2006 à 20:07
Currahee Messages postés 18 Date d'inscription jeudi 13 octobre 2005 Statut Membre Dernière intervention 20 février 2008 - 8 juin 2006 à 14:53
Bonjour,

Je suis en train de travailler sur un programme dans lequel j'ai une boucle qui m'ecrit des séries de 100 chiffres dans une feuille excel.

Au premier tour de ma boucle, mes chiffres sont inscrits dans la première colonne de ma feuille (colonne A), au second tour de boucle mes nouveaux chiffres sont inscrits dans la colonne suivante (colonne B), etc...

Je veux, et c'est là mon problème, incorporer dans la boucle une création de graphique associée à chaque série de données:

ActiveChart.SetSourceData Source:=Sheets("Capital").Range("A1:A100"), PlotBy _
:=xlColumns

Mon PROBLEME: comment changer la source de données du graphique -> avoir un range dynamique qui au premier tour de boucle sera la première colonne, au second la deuxieme colonne etc..

J'ai essayé de remplacer la ligne de code précédente par:

ActiveChart.SetSourceData Source:=Sheets("Capital").Range(Cells(1,i):Cells(100,i)), PlotBy _
:=xlColumns

i étant mon compteur de colonne

Mais ça ne fonctionne pas... :-(

Merci d'avance pour vos réponses,
A voir également:

2 réponses

Currahee Messages postés 18 Date d'inscription jeudi 13 octobre 2005 Statut Membre Dernière intervention 20 février 2008 2
8 juin 2006 à 14:53
J'ai finalement trouvé la solution...

Je pense au vu de la soluce trouvée qu'il va falloir que je me familiarise avec la commande set que j'avais négligé jusque-là... :oops:

SOLUTION:

Dim Donnees As Range

Set Donnees = Worksheets("Capital").Range(Worksheets("Capital").Cells(1, i), Worksheets("Capital").Cells(100, i))

Charts.Add
ActiveChart.ChartType = xlXYScatterLines
ActiveChart.SetSourceData Donnees, PlotBy _
:=xlColumns
ActiveChart.Location Where:=xlLocationAsNewSheet, Name:=Equipe(i)

PS: Merci pour la réponse sur l'erreur de syntaxe, mais même avec une virgule à la place des 2 points, ça plante...
1
Kobaya Messages postés 282 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 10 janvier 2008 214
8 juin 2006 à 12:02
salut,

la syntaxe de Range() n'est pas bonne. Essaie ceci :
ActiveChart.SetSourceData Source:=Sheets("Capital").Range(Cells(1,i),Cells(100,i)), PlotBy:=xlColumns

0