Bonjour,
Je réalise un graphique selon ce code :
Est il possible de le créer en lui donnant un nom de feuille de type graphique prédéfini ? (par exemple une feuille intitulée mon graphique).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 Sub Graph() 'Graphique : Dim G1 As Chart Dim ws1 As Worksheet Dim PlageDonnees1 As Range Dim PlageX1 As Range Dim PlageY1 As Range Dim MaSerie1 As Series Dim Compteur1 As Long Dim Col1 As Long Dim Lig1 As Long Set ws1 = ThisWorkbook.Worksheets("Feuille de données du graphique") Lig1 = ws1.Range("A" & ws1.Rows.Count).End(xlUp).Row 'Recherche la dernière ligne contenant une donnée Col1 = ws1.Cells(1, ws1.Columns.Count).End(xlToLeft).Column - 1 'Recherche la dernière colonne contenant une donnée With ws1 Set PlageDonnees1 = .Range(.Cells(1, 1), .Cells(Lig1, Col1)) ' Définition de la plage de données End With Set G1 = ThisWorkbook.Charts.Add 'Ajout d'une feuille MonGraphe au classeur G1.ChartArea.Clear 'Effacement des données du graphe G1.ChartType = xlXYScatter 'Définition du type de graphique (nuage de points) Set PlageX1 = PlageDonnees1.Columns(1) For Compteur1 = 1 To Col1 Set PlageY1 = PlageX1.Offset(, Compteur1) Set MaSerie1 = G1.SeriesCollection.NewSeries With MaSerie1 'Formattage des séries de données .Values = PlageY1 .XValues = PlageX1 .Name = PlageDonnees1.Cells(1, 1).Offset(, Compteur1) End With With G1.Axes(xlCategory) 'axe des abscisses .HasTitle = True 'définition du titre des abscisses .AxisTitle.Characters.Text = "Nombre d'onde (cm-1)" End With With G1.Axes(xlValue) 'axe des ordonnées .HasTitle = True 'définition du titre des ordonnées .AxisTitle.Characters.Text = "Absorbance (U.A.)" End With Next Compteur1 End Sub
Par ailleurs si cette feuille contient déjà un graphique lui dire de l'effacer :
structure de type
Je ne sais pas si ces lignes de codes sont correctes?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if Worsheet("mon graphique")<>"" then 'si graphique déjà créé sur la feuille mon graphique alors effacement du graphe worsheet.clearcontent end if
Merci d'avance pour votre aide
Partager