MACRO/VBA Graphique spécifique en fonction des valeurs d'une 3ème colonne

Aurele

XLDnaute Nouveau
Bonjour tout le monde,

J'ai vraiment besoin de vous !! :)

Je commence juste dans la programmation VBA et voila ce que je souhaiterais faire :
un graphique avec différentes courbes qui dépendent d'une valeur txt présente dans une colonne

Sur la page Excel,
Ma plage des données sont toutes les colonnes de A à X (pas de limite en nombre de ligne)
ma colonne des "X" ( les abscisses) dans la colonne B
ma colonne des "Y" (les ordonnées) dans la colonne D

( les autres colonnes ne sont pas vides, mais ne sont pas utiles pour le tracer du graphique; certaines lignes sont vides pour les valeurs en X et Y )

Dans la colonne F j'ai des valeurs en format texte : comme "A" "B" "C" et "D",

Dans ce cas la il me faudrait 4 courbes avec les titres des courbes A B C et D respectivement.
(Ainsi pour une même valeur (A par exemple) on va avoir différents points :(B1;D1); (B2;D2);(B9;D9);(B25;D25) etc .... vous avez donc compris que les valeurs de la colonne F ne sont pas triées.)

Voila mon code pour le moment, j'ai commencé avec une plage de donnée finie à la ligne 18 mais ce n'est pas ce que je souhaite!
- Je ne comprends pas comment ajouter des courbes qui dépendent d'une valeur d'une autre colonne
- Je ne sais pas comment faire en sorte que ma colonne soit infinie

Sub graph2()
Charts.Add
ActiveChart.ChartType = xlXYScatterSmooth
ActiveChart.SetSourceData Source:=Sheets("Page").Range("B2:d18"), PlotBy:=xlColumns
ActiveChart.SeriesCollection.NewSeries

With Worksheets("Page")
ActiveChart.SeriesCollection(2).Values = .Range(.Cells(2, 3), .Cells(18, 3))
End With
ActiveChart.Location Where:=xlLocationAsObject, Name:="Page"

With ActiveChart
.HasTitle = False

With .Axes(xlValue, xlPrimary)
.HasTitle = True
.AxisTitle.Characters.Text = "Ord"
End With

With .Axes(xlCategory, xlPrimary)
.HasTitle = True
.AxisTitle.Characters.Text = "Abs"
End With

End With
End Sub

Voila j'ai besoin de vous:), mon code est vraiment basic, car je ne sais pas faire mieux !
Merci de me répondre le plus rapidement, mais également me poser des questions si je n'ai pas été très claire ....

PI: j'ai tenté avec les tableaux croisées dynamique (que je maitrise assez bien) mais ça n'a rien donné...:(
 

Misange

XLDnaute Barbatruc
Re : MACRO/VBA Graphique spécifique en fonction des valeurs d'une 3ème colonne

Bonjour, Salut François

Mets nous dans un classeur excel un tableau de données et un graphique réalisé manuellement qui corresponde à ce que tu veux faire, pour ma part avec tes explications j'ai aussi du mal à comprendre.
Question annexe : pourquoi veux tu faire cela par macro ?
 

Gardien de phare

XLDnaute Accro
Re : MACRO/VBA Graphique spécifique en fonction des valeurs d'une 3ème colonne

Bonsoir, coucou Misange,

Pour mettre un classeur en pièce jointe, aller en mode avancé en bas du formulaire de saisie et cliquer sur le trombone, en haut. Tu pourras alors joindre le classeur dans ta réponse.
 

Aurele

XLDnaute Nouveau
Re : MACRO/VBA Graphique spécifique en fonction des valeurs d'une 3ème colonne

hello :)

Ok pour le "petit classeur", j'avais rien compris ^^ j'ai mis un classeur simple sur très peu de lignes mais j'ai environ 200 lignes et parfois certaines sont vides( mais on pourrait les remplir en mettant 0)

avec l'exemple en PJ, le résultat serait 4 séries nommées A, B, C et D avec les valeurs des colonnes C et D pour Abscisse et Ordonnée.
Sinon je pense faire une macro vu que je vois pas comment faire autrement à part "à la main" ce qui est long ( trier par ordre alphabétique, puis tracer les séries en sélectionnant les bonnes valeurs), de plus j'aimerai que ce soit reproductible...

Bonne journée
 

Pièces jointes

  • Classeur2.xlsx
    8.6 KB · Affichages: 47
  • Classeur2.xlsx
    8.6 KB · Affichages: 46
  • Classeur2.xlsx
    8.6 KB · Affichages: 41

Misange

XLDnaute Barbatruc
Re : MACRO/VBA Graphique spécifique en fonction des valeurs d'une 3ème colonne

Bien on progresse mais comme les explications aux #1 ne correspondent pas aux données de ton classeur c'est quand même pas évident de s'y retrouver...
Comme en plus tu écris donnée1, donnée 2 qui sont du texte et pas des nombres, difficile de faire un graphique avec ça...

2 propositions :
Tu fais un Tableau croisé dynamique avec tes données ce qui te permet de séparer les données en fonction de ton critère A, B, C, D puis tu traces un graphique. Limitation : tu ne peux tracer qu'une courbe, pas un nuage de points (étiquettes sur l'axe des x proportionnelles aux valeurs). Au pire, tu copies/colles en valeur les données du TCD et tu construits un graphique en nuage de points à partir de ce tableau secondaire si le nuage de points est impératif.
Sur le graphique exemple les courbes de chaque série sont quasiment superposées du fait des données indiquées, ça ne facilite pas la lecture.

2° solution tu filtres ton tableau (à mettre sous forme de vrai tableau excel) mais dans ce cas tu ne peux voir qu'une condition à la fois
 

Pièces jointes

  • aurele.xlsx
    25.6 KB · Affichages: 73

Aurele

XLDnaute Nouveau
Re : MACRO/VBA Graphique spécifique en fonction des valeurs d'une 3ème colonne

Ah oui merci beaucoup pour ta réponse , mais j'ai oublié de préciser qqch .... en fait dans les colonnes tension et intensité, il y des valeurs qui se repetent ( cad que parfois, des valeurs sont identiques ( ex : ligne1 identique à ligne 5 ...) du coup les tableaux croisés ne marchent pas ... il me faut tous les cas présents
j'ai commencé un code mais je bloque, je le mets ce soir, si vous avez le temps de jeter un coup d'oeil ...
Encore merci pour vos réponses.
 

Misange

XLDnaute Barbatruc
Re : MACRO/VBA Graphique spécifique en fonction des valeurs d'une 3ème colonne

Si le couple (tension, intensité) se répète pour une même condition, sur un graphique en nuage de points (ou en courbe d'ailleurs peu importe) il sera représenté comme un seul point ! dans le TCD il te suffit de synthétiser en faisant la moyenne à la place de la somme et tu auras le même résultat.
 

Statistiques des forums

Discussions
312 198
Messages
2 086 151
Membres
103 133
dernier inscrit
mtq