Bonjour le Forum
Je récupère sur une feuille les données issues d'un appareil ("Reacteur"). Après mise en forme des données, je cherche à tracer un graphe XY "Nuage de points" sur une feuille distincte de la feuille de données. Je demande à VBA de me créer un graphe en utilisant les données de la colonne "C" à "G" et "K", la colonne "C" contient les X
Si pour la création des 4 1ères séries et la mise en forme des échelles, titres, ... etc tout se passe bien (car les 4 colonnes sont mitoyennes), je n'arrive pas à mettre ensuite une 5ème série car je ne sais pas dire à XL de sélectionner sur la feuille source la nouvelle colonne non mitoyenne. 🙁
Pour le moment, j'ai une solution fonctionnelle grace à une sélection de la colonne "C" à la colonne "K", je crée le graphique et ensuite je supprime les séries inutiles mais il doit y avoir plus "clean" 😕
Voici un extrait du code employé.
Je récupère sur une feuille les données issues d'un appareil ("Reacteur"). Après mise en forme des données, je cherche à tracer un graphe XY "Nuage de points" sur une feuille distincte de la feuille de données. Je demande à VBA de me créer un graphe en utilisant les données de la colonne "C" à "G" et "K", la colonne "C" contient les X
Si pour la création des 4 1ères séries et la mise en forme des échelles, titres, ... etc tout se passe bien (car les 4 colonnes sont mitoyennes), je n'arrive pas à mettre ensuite une 5ème série car je ne sais pas dire à XL de sélectionner sur la feuille source la nouvelle colonne non mitoyenne. 🙁
Pour le moment, j'ai une solution fonctionnelle grace à une sélection de la colonne "C" à la colonne "K", je crée le graphique et ensuite je supprime les séries inutiles mais il doit y avoir plus "clean" 😕
Voici un extrait du code employé.
Code:
Sub InsereGraph()
Dim Wks As Worksheet
Dim MG As Chart
Dim LaSource As Range
Dim Nb2Lignes As Integer 'Permet de connaitre le nb de lignes de la série
'Définition des variables
Set Wks = ActiveSheet 'Permet de connaitre la feuille source dans le workbook utilisé
Nb2Lignes = Wks.Range("Reacteur").Rows.Count - 13 ' - 13 car il y a 13 lignes d'en tête à ne pas utiliser
Set LaSource = Wks.Range(Cells(14, 3), Cells(Nb2Lignes, 11)) 'C'est ici que je sélectionne toutes les colonnes !!!
LaSource.Copy
Charts.Add 'Traçage du nouveau graphe avec 8 séries
Set MG = ActiveChart 'Permet de connaitre la feuille graphique dans le workbook
'Mise en forme du graphique
With MG
.ChartType = xlXYScatterLinesNoMarkers
.SetSourceData Source:=LaSource, PlotBy:=xlColumns
.HasTitle = False
.HasAxis(xlCategory, xlPrimary) = True
.HasAxis(xlValue, xlPrimary) = True
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).CategoryType = xlAutomatic
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Durée (hh:mm)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Température (°C)"
End With
'Effacement des 3 séries inutiles
MG.SeriesCollection(7).Delete
MG.SeriesCollection(6).Delete
MG.SeriesCollection(5).Delete
...
End Sub