Répétition de graphique

Bonjour tout le monde,

Ce matin un petit problème, ou plutôt un questionnement se pose à moi. Je viens donc ici en faire part.

J'ai créé une macro permettant de faire un premier graphique, dont voici le code :

Dim i As Integer

ActiveSheet.Shapes.AddChart.Select

i = 1
    ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
    ActiveChart.SetSourceData Source:=Range("'Espace graphicage'!$A$9:$B$12285")
    ActiveChart.SeriesCollection(i).XValues = "='Espace graphicage'!$B$9:$B$12285"
    ActiveChart.SeriesCollection(1).Values = "='Espace graphicage'!$A$9:$A$12285"

Mon souhait est le suivant : comment puis-je automatiser le fait de passer de

ActiveChart.SeriesCollection(i).XValues = "='Espace graphicage'!$B$9:$B$12285"

à

ActiveChart.SeriesCollection(i).XValues = "='Espace graphicage'!$C$9:$C$12285"

automatiquement sans avoir à taper ce code pour chaque colonne ? Il peut y en avoir beaucoup, et le nombre de colonnes peut être variable. Du coup j'aimerais beaucoup que la macro puisse le faire toute seule.

Au passage, il faudrait que tous ces graphiques se positionnent sur le même graphe. C'est-à-dire qu'ils se superposent à chaque fois.

Est-ce possible ?

En vous remerciant, je vous souhaite un agréable lundi.

Rod'

Bonjour,

Merci de joindre un petit fichier à ta demande.

Cdlt..

Voici un petit fichier.

Re,

Comme tu as communiqué le minimum syndical, un retour en conséquence et tu devras t'en contenter.

Cdlt.

Option Explicit

Public Sub CreateChart()
Dim ws As Worksheet
Dim c As Long, cc As Long, n As Long, nn As Long, I As Long
Dim rCell As Range, rngX As Range, rngY As Range
Dim objChart As ChartObject

    Application.ScreenUpdating = False

    Set ws = ActiveSheet
    On Error Resume Next
    ws.ChartObjects(1).Delete
    On Error GoTo 0

    c = 2: n = 9: I = 1

    With ws
        nn = .Cells(.Rows.Count, 1).End(xlUp).Row
        cc = .Cells(n, .Columns.Count).End(xlToLeft).Column
        Set rngX = .Cells(n, 1).Resize(nn - n + 1)
        Set rCell = .Cells(8, 10)
        Set objChart = .ChartObjects.Add _
                       (Left:=rCell.Left, _
                        Top:=rCell.Top, _
                        Height:=350, _
                        Width:=600)
    End With

    With objChart.Chart
        .ChartType = xlXYScatterLines
        .HasLegend = False
        For I = 1 To cc - 1
            .SeriesCollection.NewSeries
            .SeriesCollection(I).XValues = rngX
            Set rngY = ws.Cells(n, I + 1).Resize(nn - n + 1)
            .SeriesCollection(I).Values = rngY
            .SeriesCollection(I).MarkerStyle = 6
            .SeriesCollection(I).MarkerSize = 5
        Next I
    End With

    Set objChart = Nothing
    Set rngY = Nothing: Set rngX = Nothing
    Set rCell = Nothing
    Set ws = Nothing

End Sub

Re,

Merci beaucoup pour ce petit programme ! Ca marche très bien !

Je ne comprends pas trop ce que tu veux dire : selon moi j'ai suffisamment spécifié ce que je souhaitais obtenir !

Du coup j'ai une dernière (je l'espère) petite question : comment puis-je faire pour pouvoir paramétrer le numéro de la 1ere courbe à tracer. C'est-à-dire, plutôt que la 1ere courbe représente la deuxième colonne, la 2e courbe la 3e colonne, et cetera, elle m'affiche par exemple la 1ere courbe représentant la 10e colonne. Si c'est possible bien sûr.

Encore merci !

Rod'

Re,

essaie :

For I = cc - 1 To 1

au lieu de :

For I = 1 To cc - 1

Bonjour,

Désolé pour mon temps de réponse, et merci !

Cette solution ne marche malheureusement pas. :/ Je ne vois pas trop comment faire.

Rod'


En revanche je viens de trouver une solution :

Je pointe le "For...To" vers des cases que je remplis dans mon classeur Excel, et je remplace mes "SeriesCollection(I)" par des "SeriesCollection(I-valeur de la cellue +1)"...et ça fonctionne !

Merci beaucoup pour le code initial !

Bonjour,

Désolé de rouvrir ce topic, mais j'aurai juste deux petites questions auxquelles je ne trouve de réponse pour le moment : comment fait-on pour régler la couleur des lignes pour avoir des lignes qui ont toutes la même couleur ?

Aussi, mes graphiques sont destinés à se superposer. Jusque là j'arrive à le faire pas de soucis. Simplement, quand je superpose mon second graphique sur mon premier, les lignes de mon premier graphique s'épaississent et donnent un effet indésirable. Comment pourrais-je faire pour régler ce petit détail ?

En espérant ne pas abuser de ta gentillesse, je te remercie d'ores et déjà pour toutes les réponses que tu as déjà fournies.

Rod'

Bonjour,

je ne comprends pas tout de tes graphiques superposés.

Envoie un fichier avec des explications claires.

Cdlt.

Rechercher des sujets similaires à "repetition graphique"