VBA - Tracé de graphique

Bonjour à tous,

Je m'excuse si ce sujet est déjà sorti mais apres de multiples recherches sur le web je ne trouve pas de réponse simple..

J'aimerai tout simplement tracer un graphique sous VBA (j'ai déjà essayé en enregistrant une macro mais peu concluant).

Dans mon Excel j'ai un nombre de colonnes FIXE et un nombre de ligne qui peut varier.

J'aimerai juste tracer à la chaîne 1 graphique avec la colonne A en abscisse et B en ordonnée sur une nouvelle feuille sous forme de points reliés entre eux.

Sur une autre feuille, un graphique avec la colonne A en abscisse et en ordonnée la colonne C, sur une nouvelle feuille : la colonne A en abscisse et D en ordonnée.. ainsi de suite jusqu'à ma colonne Z.

La colonne A reste l'abscisse pour tous les graphes.

Je ne pense pas que ce soit très dur mais le fait que le nombre de ligne de mes colonnes peut varier me bloque complétement..

Je remercie ceux qui prendront le temps de m'aider

Bonsoir thibowf,

j'ai eu le même problème que toi il y a quelques temps

voici mon code qui genere le graph

ActiveSheet.Shapes.AddChart.Select ' sur la feuille active création d'un graph

    ActiveChart.ChartType = xlLine ' type de graphique  : nuage de point, ligne, etc...tu peux le récupérer via l'enregistreur 
    ActiveSheet.ChartObjects(Right(ActiveChart.Name, Len(ActiveChart.Name) - Len(ActiveSheet.Name) - 1)).Name = "Graph" je force l'objet a se nommer graph

     With ActiveChart
        .HasTitle = True
        .ChartTitle.Characters.Text = "Suivi de la dérive de < " & i & "> " & TextBox1.Value ' "Montitre"
    End With

   ' ici on définit les series
    ActiveChart.SeriesCollection(1).Name = "=Prt!$A$11" 'le nom de ta série "=Nomdel'onglet! A11"
    ActiveChart.SeriesCollection(1).Values = "=Prt!$B$11:$BB$11" '  la plage de valeur
    ActiveChart.SeriesCollection(1).XValues = "=Prt!$B$10:$BB$10" ' la plage des abcisses
   ' dans mon code j'avais 3 courbes  voici les 2 restantes sur le même modèle
 ActiveChart.SeriesCollection(2).Name = "=Prt!$A$12"
    ActiveChart.SeriesCollection(2).Values = "=Prt!$B$12:$BB$12"
    ActiveChart.SeriesCollection(3).Name = "=Prt!$A$13"
    ActiveChart.SeriesCollection(3).Values = "=Prt!$B$13:$BB$13"

'ici je supprime une collection que je n'ai pas codé :)  :scritch: qui se génère, chez moi, automatiquement :#@&:  selon le nombre de courbe sur le graph tu devras modifier 'peut etre le numero ou mieux tu n'auras pas ce problème
    ActiveChart.SeriesCollection(4).Delete 

    'ici on définie la taille et la position sur la feuille du graph récupérable via l'enregistreur 

    ActiveSheet.Shapes("Graph").IncrementLeft -274.0909448819
    ActiveSheet.Shapes("Graph").IncrementTop 159.545511811
    ActiveSheet.Shapes("Graph").ScaleHeight 2.4010418489, msoFalse, _
        msoScaleFromTopLeft
    ActiveSheet.Shapes("Graph").ScaleWidth 3.1531251094, msoFalse, _
        msoScaleFromTopLeft

Normalement avec ça tu devrais avoir quelques choses,

Fait un essais déja avec ce code, et donne nous plus de détail: As tu 25 graph a générer ? ou 25 tracés sur le même graph?

et joint tes essais avec un fichier avec de valeurs fictives si besoin.

Bon courage,

j'ai fait pas mal d’édition de mon poste dsl,

Bonjour,

Merci pour ta réponse mais je ne parviens pas à le faire fonctionner.

Plus simplement, comment ferais-tu pour tracer un graphe avec 2 colonnes disjointes qui ont un nombre de ligne variable ?

Par exemple, si l'on veut tracer un graphe avec la colonne A et C avec A qui représente les valeurs en abscisse et C les ordonnées?

Merci pour ton aide

premiere ébauche, le nombre de ligne peut varier, la macro recuperera bien les valeurs sauf si il y a une cellule blanche dans ta colonne A

29testgraph.xlsm (24.90 Ko)

pour info le sujet du mois de janvier sur mes pb de graph https://forum.excel-pratique.com/viewtopic.php?f=2&t=103679

tu auras sans doute des informations utiles

Rechercher des sujets similaires à "vba trace graphique"