Creer plusieurs courbes sur un meme graphique avec une macro VBA pour Excel [Résolu]

maxmanue 2 Messages postés vendredi 13 août 2010Date d'inscription 13 août 2010 Dernière intervention - 13 août 2010 à 11:05 - Dernière réponse : maxmanue 2 Messages postés vendredi 13 août 2010Date d'inscription 13 août 2010 Dernière intervention
- 13 août 2010 à 11:52
Bonjour à tous,

Je suis actuellement en stage dans un labo et je dois faire un programme sur Excel.
Celui-ci demande à l'utilisateur combien de sous domaines il veux, ensuite demande pour chaque sous domaines les valeurs xmin, xmax, ymin, ymax. J'ai réussi à faire une macro qui fait tout cela, mais maintenant j'ai besoin de créer sur un seul graphique le tracer des valeurs pour chaque sous domaines. Pour imager un peu mon propos, je veux dessiner des rectangles donc pour cela je fait des tableaux pour chaque sous domaines du type:
sous domaine 1
0 0
1 0
1 1
0 1
0 0

Ainsi quand je créer avec ce tableau, un nuage de points avec lignes droites, je vois apparaitre un rectangle.

Cependant je n'arrive pas à faire ceci à l'aide d'une boucle, j'ai toujours un message d'erreur et je ne comprend pas pourquoi, voici la macro que j'ai faite,(je suis debutant en VB, donc soyez indulgent):


Sub graph()
Dim a, b, c As Integer
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlXYScatterLines
ActiveWindow.SmallScroll Down:=12
a = 17
b = 18
c = 22

For i = 1 To subdomain

ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(i).Name = "='Feuil1'!$C$ & a"
ActiveChart.SeriesCollection(i).XValues = "='Feuil1'!$C$ & b:$C$ & c"
ActiveChart.SeriesCollection(i).Values = "='Feuil1'!$E$ & b:$E$ & c"
a = a + 6
b = b + 6
c = c + 6

Next


End Sub

Le a b c permet de se déplacer dans la feuille de calculs car les tableaux sont les uns en dessous des autres.

Je vous remercie par avance pour le temps que vous passerez à m'aider.

Maxime
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 13 août 2010 à 11:22
3
Merci
Salut

Sous quelle version de Excel travailles-tu ? 2003, 2007, 2010; SP ?

Tes chaines d'affectation ne sont pas correctes.
Il faut sortir de la chaine pour y insérer tes variables.
Exemple :
"='Feuil1'!$C$ & b:$C$ & c"
-->
"='Feuil1'!$C$" & CStr(b) & ":$C$" & CStr(c)

A revoir aussi, pour le même type de correction :
"='Feuil1'!$C$ & a"
et
"='Feuil1'!$E$ & b:$E$ & c"

Une solution très pratique consiste à enregistrer une macro pendant que tu :
- sélectionnes un, deux trois, X zones de données sur ta feuille
- crées un graphique qui prendra ces diverses zones pour données sources
- etc
Tu récupèreras ainsi le code tout fait, tu n'auras plus qu'à le modifier pour y insérer tes variables, mais en respectant la syntaxe VB.

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)

Merci cs_Jack 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 102 internautes ce mois-ci

Commenter la réponse de cs_Jack
maxmanue 2 Messages postés vendredi 13 août 2010Date d'inscription 13 août 2010 Dernière intervention - 13 août 2010 à 11:52
0
Merci
Salut Jack,

J'utilise Excel 2007, je viens de tester ta correction et ça marche à la perfection, merci beaucoup, je pense que je posterai d'autre problème car le programme est très long(donc beaucoup de soucis...)

Merci
Commenter la réponse de maxmanue

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.