macro pour générer des graphiques

  • Initiateur de la discussion Initiateur de la discussion pedro59940
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
11
Affichages
528
Retour