Créer graphiques par VBA dans la feuille active
Bonjour le forum,
Je cherche à créer toutes les x+22 lignes un graphique. Je cherche une formule qui pourrait :
supprimer tous les anciens graphiques de la page dans un premier temps puis recréer tous les nouveaux.
Je joins le fichier. J'ai mis un graphique qui correspond à ce que je recherche en G24:P43.
1er graphique : ma plage = A2:F22
critères horizontaux : A3:A22
critères verticaux : B2:F2
La note des critère verticaux est notée sur 5 (qui sera le maximum de l'échelle)
Je cherche à afficher comme titre du graphique la cellule qui sera toujours une ligne au-dessus du graphique, pour le 1er graphique :
le titre = A1
Je souhaite placer chaque graphique à côté de chaque tableau de données mais à partir de la colonne G.
Et je cherche à ce que chaque tableau ait la taille 20cm de long et 15cm de haut.
2eme graphique : ma plage : A24:F44
et ainsi de suite jusqu'à mon 20eme graphique.
Merci d'avance à toute personne qui pourrait m'aider.
Cordialement
Bonjour le forum,
J'ai trouvé la solution! Je la poste :
Sub SYNTHESE_FOURNISSEURS_GRAPHIQUES()
Sheets("SYNTHESE_FOURNISSEURS").Select
'supprimer tous les graphiques
Dim Grf As ChartObject
Dim Sh As Worksheet
Set Sh = Sheets("SYNTHESE_FOURNISSEURS")
For Each Grf In Sh.ChartObjects
Grf.Delete
Next Grf
'créer tous les graphiques
Dim a, i, j, x, k
x = 0
For i = 2 To 1740 Step 22
x = x + 1
a = i - 1
k = i + 1
j = i + 20
ActiveWindow.ScrollRow = a
ActiveWindow.ScrollColumn = 1
Range("A" & i & ":F" & j).Select
ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
ActiveChart.SetSourceData Source:=Range(Cells(i, 1), Cells(j, 6))
ActiveChart.SetElement (msoElementChartTitleNone)
ActiveChart.SetElement (msoElementChartTitleAboveChart)
With ActiveChart
.Parent.Name = "graphique " & x
End With
'Range("A" & i).Select
'Selection.Copy
ActiveSheet.ChartObjects("graphique " & x).Activate
ActiveChart.ChartTitle.Characters.Text = Cells(i, 1).Value & " " & Cells(a, 1).Value
'ActiveChart.Paste
' Application.CutCopyMode = False
'ActiveChart.ChartTitle.Text = "objectif recherché "
'Range("J29").Select
'ActiveSheet.ChartObjects("Graphique 1").Activate
ActiveSheet.ChartObjects("graphique " & x).Activate
ActiveChart.Axes(xlValue).Select
ActiveChart.Axes(xlValue).MaximumScale = 5
ActiveChart.Axes(xlValue).MajorUnit = 1
'Range("O33").Select
ActiveSheet.ChartObjects("graphique " & x).Activate
'ActiveSheet.Shapes("graphique " & x).Height = 141.7322834646
ActiveSheet.Shapes("graphique " & x).Height = 226.7716535433
ActiveSheet.Shapes("graphique " & x).Width = 566.9291338583
'Range("M28").Select
'ActiveSheet.ChartObjects("Graphique 1").Activate
ActiveSheet.ChartObjects("graphique " & x).Activate
'ActiveSheet.Shapes("graphique " & x).IncrementLeft 63.75
'ActiveSheet.Shapes("graphique " & x).IncrementTop -129.75
ActiveSheet.ChartObjects("graphique " & x).Left = Range("G" & k).Left
ActiveSheet.ChartObjects("graphique " & x).Top = Range("G" & k).Top
'Range("K36").Select
Next i
Range("A1").Select
End Sub
Cordialement