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

Messages postés
2
Date d'inscription
vendredi 13 août 2010
Dernière intervention
13 août 2010
- - Dernière réponse : maxmanue
Messages postés
2
Date d'inscription
vendredi 13 août 2010
Dernière intervention
13 août 2010
- 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
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
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)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de cs_Jack
Messages postés
2
Date d'inscription
vendredi 13 août 2010
Dernière intervention
13 août 2010
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.