macro pour générer des graphiques

pedro59940

XLDnaute Nouveau
Bonjour à tous,


J'aimerai pouvoir générer des graphiques à partir d'une macro.
Je voudrai qu'il copie le 1e graphique, qu'il le colle en dessous mais qu'il vienne chercher les données du graphique juste en dessous.
J'ai essayé avec l'enregistreur de macro mais je n'arrive pas à renommer l'étendue des cellules.

Ci-joint, vous trouverez le fichier que j'utilise


Merci d'avance pour votre aide
 

Pièces jointes

  • essai.xlsm
    286.1 KB · Affichages: 43
  • essai.xlsm
    286.1 KB · Affichages: 44
  • essai.xlsm
    286.1 KB · Affichages: 50

pedro59940

XLDnaute Nouveau
Re : macro pour générer des graphiques

J'ai un peu avancé sur le code, mainteant je dois trouver le moyen de générer ce type de graphique pour les tableaux suivants.
Avez-vous une idée de comment je peux faire ?
Ci-dessous le code :

Code:
Sub Macro3()
'
' Macro3 Macro
'
    Dim rg As Range, rg1 As Range, rg2 As Range, rg3 As Range, rg4 As Range
    Dim rg20 As Range
    Dim objChart As ChartObject
    Dim ws As Worksheet
    Dim sNom As String
    Dim Ax As Axis

    
    Set ws = ActiveSheet
    Set rg = ws.Range("Y6:JD6")
    Set rg1 = ws.Range("Y6:BB6")     'plage contenant les données
    Set rg2 = ws.Range("Y7:BB7")     'plage contenant les données
    Set rg3 = ws.Range("BC6:CF6")     'plage contenant les données
    Set rg4 = ws.Range("BC7:CF7")     'plage contenant les données
    Set rg20 = ws.Range("A24:V40")   'plage où placer le graphique
    
    Set objChart = ws.ChartObjects.Add(Left:=rg20.Left, Top:=rg20.Top, Width:=rg20.Width, Height:=rg20.Height)


    With objChart.Chart



        With .SeriesCollection.NewSeries
            .ChartType = xlXYScatter
            .Name = ActiveSheet.Range("Y5")
            .XValues = ActiveSheet.Range("Y6:BB6")
            .Values = ActiveSheet.Range("Y7:BB7")
            .MarkerSize = 7
            .MarkerStyle = 2
            .MarkerForegroundColor = RGB(0, 0, 0)
            .MarkerBackgroundColor = RGB(0, 255, 0)
            Set Ax = objChart.Chart.Axes(xlCategory)
            Ax.MaximumScale = 250

        End With

        
        With .SeriesCollection.NewSeries
            .ChartType = xlXYScatter
            .Name = ActiveSheet.Range("BC5")
            .XValues = ActiveSheet.Range("BC6:CF6")
            .Values = ActiveSheet.Range("BC7:CF7")
            .MarkerSize = 7
            .MarkerStyle = 2
            .MarkerForegroundColor = RGB(0, 0, 0)
            .MarkerBackgroundColor = RGB(0, 0, 255)
        End With
        With .SeriesCollection.NewSeries
            .ChartType = xlXYScatter
            .Name = ActiveSheet.Range("CG5")
            .XValues = ActiveSheet.Range("CG6:DJ6")
            .Values = ActiveSheet.Range("CG7:DJ7")
            .MarkerSize = 7
            .MarkerStyle = 2
            .MarkerForegroundColor = RGB(0, 0, 0)
            .MarkerBackgroundColor = RGB(255, 255, 0)
        End With
        With .SeriesCollection.NewSeries
            .ChartType = xlXYScatter
            .Name = ActiveSheet.Range("DK5")
            .XValues = ActiveSheet.Range("DK6:EN6")
            .Values = ActiveSheet.Range("DK7:EN7")
            .MarkerSize = 7
            .MarkerStyle = 2
            .MarkerForegroundColor = RGB(0, 0, 0)
            .MarkerBackgroundColor = RGB(255, 0, 255)
        End With
        With .SeriesCollection.NewSeries
            .ChartType = xlXYScatter
            .Name = ActiveSheet.Range("EO5")
            .XValues = ActiveSheet.Range("EO6:FR6")
            .Values = ActiveSheet.Range("EO7:FR7")
            .MarkerSize = 7
            .MarkerStyle = 2
            .MarkerForegroundColor = RGB(0, 0, 0)
            .MarkerBackgroundColor = RGB(0, 255, 255)
        End With
        With .SeriesCollection.NewSeries
            .ChartType = xlXYScatter
            .Name = ActiveSheet.Range("FS5")
            .XValues = ActiveSheet.Range("FS6:GU6")
            .Values = ActiveSheet.Range("FS7:GU7")
            .MarkerSize = 7
            .MarkerStyle = 2
            .MarkerForegroundColor = RGB(0, 0, 0)
            .MarkerBackgroundColor = RGB(255, 204, 102)
        End With
        With .SeriesCollection.NewSeries
            .ChartType = xlXYScatter
            .Name = ActiveSheet.Range("GW5")
            .XValues = ActiveSheet.Range("GW6:HZ6")
            .Values = ActiveSheet.Range("GW7:HZ7")
            .MarkerSize = 7
            .MarkerStyle = 2
            .MarkerForegroundColor = RGB(0, 0, 0)
            .MarkerBackgroundColor = RGB(0, 128, 0)
        End With
        With .SeriesCollection.NewSeries
            .ChartType = xlXYScatter
            .Name = ActiveSheet.Range("IA5")
            .XValues = ActiveSheet.Range("IA6:JD6")
            .Values = ActiveSheet.Range("IA7:JD7")
            .MarkerSize = 7
            .MarkerStyle = 2
            .MarkerForegroundColor = RGB(0, 0, 0)
            .MarkerBackgroundColor = RGB(165, 165, 165)
        End With
        With .SeriesCollection.NewSeries
            .ChartType = xlXYScatterLinesNoMarkers
            .Name = ActiveSheet.Range("X9")
            .XValues = ActiveSheet.Range("Y6:JD6")
            .Values = ActiveSheet.Range("Y9:JD9")
            .Border.Color = RGB(0, 204, 255)
            .Border.Weight = 1
            .Border.LineStyle = xlDash
        End With
        With .SeriesCollection.NewSeries
            .ChartType = xlXYScatterLinesNoMarkers
            .Name = ActiveSheet.Range("X10")
            .XValues = ActiveSheet.Range("Y6:JD6")
            .Values = ActiveSheet.Range("Y10:JD10")
            .Border.Color = RGB(253, 146, 3)
        End With
        With .SeriesCollection.NewSeries
            .ChartType = xlXYScatterLinesNoMarkers
            .Name = ActiveSheet.Range("X11")
            .XValues = ActiveSheet.Range("Y6:JD6")
            .Values = ActiveSheet.Range("Y11:JD11")
            .Border.Color = RGB(146, 208, 80)
        End With
        With .SeriesCollection.NewSeries
            .ChartType = xlXYScatterLinesNoMarkers
            .Name = ActiveSheet.Range("X12")
            .XValues = ActiveSheet.Range("Y6:JD6")
            .Values = ActiveSheet.Range("Y12:JD12")
            .Border.Color = RGB(146, 208, 80)
        End With
        With .SeriesCollection.NewSeries
            .ChartType = xlXYScatterLinesNoMarkers
            .Name = ActiveSheet.Range("X13")
            .XValues = ActiveSheet.Range("Y6:JD6")
            .Values = ActiveSheet.Range("Y13:JD13")
            .Border.Color = RGB(253, 146, 3)
        End With
        With .SeriesCollection.NewSeries
            .ChartType = xlXYScatterLinesNoMarkers
            .Name = ActiveSheet.Range("X14")
            .XValues = ActiveSheet.Range("Y6:JD6")
            .Values = ActiveSheet.Range("Y14:JD14")
            .Border.Color = RGB(253, 0, 0)
            .Border.Weight = 1
        End With


    End With

 
'
End Sub
 

Pièces jointes

  • essai.xlsm
    292.5 KB · Affichages: 30
  • essai.xlsm
    292.5 KB · Affichages: 32
  • essai.xlsm
    292.5 KB · Affichages: 29

Discussions similaires

Statistiques des forums

Discussions
312 686
Messages
2 090 948
Membres
104 705
dernier inscrit
Mike72