IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Graphique sous VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 193
    Par défaut Graphique sous VBA
    Bonjour,

    Je suis débutant sous VBA et je souhaite faire des graphiques.
    J'ai déniché un code sur le net mais en le compilant ça me fait des messages d'erreurs (c'est l'instruction
    ActiveChart.Location Where:=xlLocationAsObject, Name:=wsm)

    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
    Sub CreerUnGrapheSurFeuilleExistante(wsm As Worksheet)
      Charts.Add
      ActiveChart.ChartType = xlColumnClustered
      ActiveChart.SetSourceData Source:=wsm.Range("C8:F14"), PlotBy:=xlColumns
      ActiveChart.Location Where:=xlLocationAsObject, Name:=wsm
      With ActiveChart
        .HasTitle = True
        .ChartTitle.Characters.Text = "Au revoir"
        .Axes(xlCategory, xlPrimary).HasTitle = False
        .Axes(xlValue, xlPrimary).HasTitle = False
      End With
     
      'wsm.ChartObjects(1).Name = "Hello2"
     
    End Sub
    Aussi pouvez vous m'expliquer comment importer des données présent dans un vecteur pour faire nos graphique?

    Merci d'avance

  2. #2
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Je te propose ce petit bout de code fait main mais qui fonctionne très bien.
    Il créé un graphe avec, sur X, ce qui se trouve en A1:A10.
    A toi de l'adapter !
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    Sub CreateGraph()
     
    With Worksheets("Feuil1")
        'Delete all the graphs which are already on the worksheet
        If .ChartObjects.Count <> 0 Then .ChartObjects.Delete
     
        'Add a graph
        Charts.Add
        ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
     
        'Delete all series when excel fills the graph automatically
        With ActiveChart
            Do Until .SeriesCollection.Count = 0
                .SeriesCollection(1).Delete
            Loop
        End With
     
        'Set the position of the graphe (here: on the range A1:P25)
        With .ChartObjects(1)
            .Left = Range("A1:P25").Left
            .Top = Range("A1:P25").Top
            .Width = Range("A1:P25").Width
            .Height = Range("A1:P25").Height
        End With
     
        'In the graph we are creating...
        With ActiveChart
            'Set the title
            .HasTitle = True
            With .ChartTitle
                .Characters.Text = "My title"
                .Border.Weight = xlHairline
                .Font.Size = 20
            End With
     
            'Set the Y axis title
            With .Axes(xlValue)
                .HasTitle = True
                With .AxisTitle
                    .Caption = "Y axis"
                    .Font.Size = 13
                    .Font.Bold = True
                End With
            End With
     
            'Set the X axis title
            With .Axes(xlCategory)
                .HasTitle = True
                With .AxisTitle
                    .Caption = "X axis"
                    .Font.Size = 13
                    .Font.Bold = True
                End With
            End With
     
    ''***************************************************************************************************************************
    ''I- Soit on ajoute les courbes les unes après les autres avec des "NewSeries" :
    '        'Add a SerieCollection
    '        .SeriesCollection.NewSeries
    '        With .SeriesCollection(.SeriesCollection.Count)
    '            .Name = "My name"
    '            .ChartType = xlLine
    '            .Values = Worksheets("Feuil1").Range("A1:A10") 'Your Y values
    '            .XValues = Worksheets("Feuil1").Range("B1:B10") 'Your X values
    '            .Border.Weight = xlThick
    '            .Border.Color = RGB(0, 0, 255)
    '        End With
    '***************************************************************************************************************************
     
    '***************************************************************************************************************************
    'II- On peut également directement placer une range à tracer :
            .SetSourceData Source:=Worksheets("Feuil1").Range("A1:A10"), PlotBy:=xlColumns
        End With
     
    End With
     
    End Sub
    Dis-moi si tu veux d'avantage d'explications !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 193
    Par défaut Merci pour votre réponse
    Tout d'abord merci!!!

    Par contre, pouvez vous m'expliquer comment changer ce graphique (qui est en histogramme) en graphique en ligne (c'est à dire en ligne)

    De plus, je souhaite savoir s'il est possible de demander à l'utilisateur les plages il a envie de tracer ses courbes.

    Encore Merci!!!

  4. #4
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    Sub CreateGraph()
    Dim choice_deb As String
    Dim choice_fin As String
     
    With Worksheets("Feuil1")
        choice_deb = InputBox("Cellule de départ ?", "Plage de cellules", "A1")
        choice_fin = InputBox("Cellule de fin ?", "Plage de cellules", choice_deb)
     
        'Delete all the graphs which are already on the worksheet
        If .ChartObjects.Count <> 0 Then .ChartObjects.Delete
     
        'Add a graph
        Charts.Add
        ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
     
        'Delete all series when excel fills the graph automatically
        With ActiveChart
            Do Until .SeriesCollection.Count = 0
                .SeriesCollection(1).Delete
            Loop
        End With
     
        'Set the position of the graphe (here: on the range A1:P25)
        With .ChartObjects(1)
            .Left = Range("A1:P25").Left
            .Top = Range("A1:P25").Top
            .Width = Range("A1:P25").Width
            .Height = Range("A1:P25").Height
        End With
     
        'In the graph we are creating...
        With ActiveChart
            'Set the title
            .HasTitle = True
            With .ChartTitle
                .Characters.Text = "My title"
                .Border.Weight = xlHairline
                .Font.Size = 20
            End With
     
            'Set the Y axis title
            With .Axes(xlValue)
                .HasTitle = True
                With .AxisTitle
                    .Caption = "Y axis"
                    .Font.Size = 13
                    .Font.Bold = True
                End With
            End With
     
            'Set the X axis title
            With .Axes(xlCategory)
                .HasTitle = True
                With .AxisTitle
                    .Caption = "X axis"
                    .Font.Size = 13
                    .Font.Bold = True
                End With
            End With
     
    ''***************************************************************************************************************************
    '''I- Soit on ajoute les courbes les unes après les autres avec des "NewSeries" :
    '        'Add a SerieCollection
    '        .SeriesCollection.NewSeries
    '        With .SeriesCollection(.SeriesCollection.Count)
    '            .Name = "My name"
    '            .ChartType = xlLine
    '            .Values = Worksheets("Feuil1").Range(choice_deb & ":" & choice_fin) 'Your Y values
    '        'Met la plage que tu souhaites sur X
    '            '.XValues = Worksheets("Feuil1").Range("B1:B10") 'Your X values
    '            .Border.Weight = xlThick
    '            .Border.Color = RGB(0, 0, 255)
    '        End With
    '***************************************************************************************************************************
     
    'II- On peut également directement placer une range à tracer :
            .SetSourceData Source:=Worksheets("Feuil1").Range(choice_deb & ":" & choice_fin), PlotBy:=xlColumns
     
            With ActiveChart
                For i = 1 To .SeriesCollection.Count
                    .SeriesCollection(i).ChartType = xlLine
                Next i
            End With
     
        End With
     
    End With
     
    End Sub
    Dis moi si cela te convient !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 193
    Par défaut
    Merci Kimi Ire.

    Oui j'ai encore quelques modifications à apporter dans le code
    => j'ai envie que l'utilisateur donne via un inputbox la plage où les données sont présentes .
    => de plus j'ai envie de réaliser deux graphiques (l'un pour des données A, l'autre pour des données B) sur la même page que celle où est présente les données.

    Enfin : à quoi sert l'instruction suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"

    Merci d'avance

  6. #6
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    => j'ai envie que l'utilisateur donne via un inputbox la plage où les données sont présentes .
    Le code que je t'ai donné permet à l'utilisateur de sélectionner des données, non ? Cela ne te convient pas ?
    => de plus j'ai envie de réaliser deux graphiques (l'un pour des données A, l'autre pour des données B) sur la même page que celle où est présente les données.
    Je ne comprends pas bien. Tu veux tracer deux graphes ? Un avec les données de la colonne A et l'autre de la colonne B, c'est ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
    Enfin, ceci sert à placer le graphe sur une feuille (ici la feuille "Feuil1") et non pas créer un graphe dans un nouvel onglet.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 193
    Par défaut
    Ah si ça me convient... j'avais pas vu que ça me servait à ça les choice_deb et choice_fin.

    Par contre, mon graphique n'est pas celui que je veux : voilà mes 1ères données sont sur I4 jusqu' AZ7. Mais le programme proposé fait de sorte à ce que ça se traite colonne par colonne, alors que je souhaite le faire ligne par ligne (serais ce à cause du plotby: x1columns ?)

    De plus , mon deuxième jeu de données se situe sur I10 et AZ13. Et je souhaite que ce graphique soit traité de la même façon et apparaissent dans la même page.

    Ps: dans votre code, vous avez oublié un dim i as integer.

  8. #8
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Par contre, mon graphique n'est pas celui que je veux : voilà mes 1ères données sont sur I4 jusqu' AZ7. Mais le programme proposé fait de sorte à ce que ça se traite colonne par colonne, alors que je souhaite le faire ligne par ligne (serais ce à cause du plotby: x1columns ?)
    Exactement ! Donc remplace simplement xlColumns par xlRows.

    Ensuite, il y a deux possibilités. Veux-tu 4 Input box avec les choix des cellules (ce qui, je trouve, est assez lourd). Ou alors préfères-tu deux Input box dans lesquelles tu rentres directement la plage ? L'inconvénient de la seconde méthode c'est que l'utilisateur doit ABSOLUMENT rentrer dans l'Input box le bon formalisme, à savoir : "I4:AZ7".
    Je te propose donc le code suivant :
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    Sub CreateGraph()
    Dim choice1 As String
    Dim choice2 As String
     
    With Worksheets("Feuil1")
        choice1 = InputBox("Première plage ?" & vbLf & "(formalisme du type I4:AZ7 obligatoire)", "Plage de cellule", "I4:AZ7")
        choice2 = InputBox("Seconde plage ?" & vbLf & "(formalisme du type I10:AZ13 obligatoire)", "Plage de cellule", "I10:AZ13")
     
        'Delete all the graphs which are already on the worksheet
        If .ChartObjects.Count <> 0 Then .ChartObjects.Delete
     
        For k = 1 To 2
            'Add a graph
            Charts.Add
            ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
     
            'Delete all series when excel fills the graph automatically
            With ActiveChart
                Do Until .SeriesCollection.Count = 0
                    .SeriesCollection(1).Delete
                Loop
            End With
     
            'Set the position of the graphe (here: on the range A1:P25)
            With .ChartObjects(k)
                .Left = Range("A1:P25").Offset(26 * (k - 1), 0).Left
                .Top = Range("A1:P25").Offset(26 * (k - 1), 0).Top
                .Width = Range("A1:P25").Offset(26 * (k - 1), 0).Width
                .Height = Range("A1:P25").Offset(26 * (k - 1), 0).Height
            End With
     
            'In the graph we are creating...
            With ActiveChart
                'Set the title
                .HasTitle = True
                With .ChartTitle
                    .Characters.Text = "Title " & k
                    .Border.Weight = xlHairline
                    .Font.Size = 20
                End With
     
                'Set the Y axis title
                With .Axes(xlValue)
                    .HasTitle = True
                    With .AxisTitle
                        .Caption = "Y axis"
                        .Font.Size = 13
                        .Font.Bold = True
                    End With
                End With
     
                'Set the X axis title
                With .Axes(xlCategory)
                    .HasTitle = True
                    With .AxisTitle
                        .Caption = "X axis"
                        .Font.Size = 13
                        .Font.Bold = True
                    End With
                End With
     
                Select Case k
                    Case 1
                        .SetSourceData Source:=Worksheets("Feuil1").Range(choice1), PlotBy:=xlRows
                    Case 2
                        .SetSourceData Source:=Worksheets("Feuil1").Range(choice2), PlotBy:=xlRows
                End Select
     
                With ActiveChart
                    For i = 1 To .SeriesCollection.Count
                        .SeriesCollection(i).ChartType = xlLine
                    Next i
                End With
     
            End With
        Next k
     
    End With
     
    End Sub
    A toi de l'adapter.

    Tiens moi au courant !

    PS : je ne me préocupe pas de la déclaration des entiers des boucles puisque je ne travaille pas (ici) en "Option Explicit".

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 193
    Par défaut
    Je suis quasi ok avec votre sub.

    Il me reste juste à savoir comment donner le nom à chaque série de données. En effet, chaque ligne correspond à un sous cas et je souhaite donner un nom correct au lieu de voir dans ma figure série1 , série2 ou série3.

    Aussi une autre question comment faire de sorte à ce que le deuxième graphe soit à droite du premier?

  10. #10
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Tes deux graphes ont les mêmes noms de séries ?

    Ces noms sont-ils placés dans ta feuille de calcul (j'entends par là sur les plages H4:H7 et H10:H13) ou veux-tu les écrires manuellement ?

    Pour ton autre question, le "Offset" que je place est ".Offset(26 * (k - 1), 0)". Cela signifie que le premier graphe a un offset de 26 * (k - 1) = 0 ligne et le second à un offset de 26 * (k - 1) = 26 lignes. Si tu veux le mettre à droite, tu ne mets plus ton offset sur les lignes mais sur les colonnes soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Offset(0, 26 * (k - 1))
    Le 26 est personnel. Mets ce que tu souhaites !

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 193
    Par défaut
    Oui pour les noms des séries. Je souhaite que ces noms de séries se trouvent en dessous du graphe et pas à droite.

    Par contre j'ai remarqué que le deuxième graphe ne conserve pas le même format que le premier (il est plus petit coté longueur). Peut on régler ce problème?

    Enfin, est il possible de rajouter du couleur par nous même?

    Merci pour vos conseils...

  12. #12
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    Sub CreateGraph()
    Dim choice1 As String
    Dim choice2 As String
     
    With Worksheets("Feuil1")
        choice1 = InputBox("Première plage ?" & vbLf & "(formalisme du type A1:B10 obligatoire)", "Plage de cellule", "A1:B10")
        choice2 = InputBox("Seconde plage ?" & vbLf & "(formalisme du type C1:D10 obligatoire)", "Plage de cellule", "C1:D10")
     
        'Delete all the graphs which are already on the worksheet
        If .ChartObjects.Count <> 0 Then .ChartObjects.Delete
     
        For k = 1 To 2
            'Add a graph
            Charts.Add
            ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
     
            'Delete all series when excel fills the graph automatically
            With ActiveChart
                Do Until .SeriesCollection.Count = 0
                    .SeriesCollection(1).Delete
                Loop
            End With
     
            'Set the position of the graphe (here: on the range A1:P25)
            With .ChartObjects(k)
                .Left = Range("A1:P25").Offset(0, 26 * (k - 1)).Left
                .Top = Range("A1:P25").Offset(0, 26 * (k - 1)).Top
                .Width = Range("A1:P25").Offset(0, 26 * (k - 1)).Width
                .Height = Range("A1:P25").Offset(0, 26 * (k - 1)).Height
            End With
     
            'In the graph we are creating...
            With ActiveChart
                'Set the title
                .HasTitle = True
                With .ChartTitle
                    .Characters.Text = "Title " & k
                    .Border.Weight = xlHairline
                    .Font.Size = 20
                End With
     
                'Set the Y axis title
                With .Axes(xlValue)
                    .HasTitle = True
                    With .AxisTitle
                        .Caption = "Y axis"
                        .Font.Size = 13
                        .Font.Bold = True
                    End With
                End With
     
                'Set the X axis title
                With .Axes(xlCategory)
                    .HasTitle = True
                    With .AxisTitle
                        .Caption = "X axis"
                        .Font.Size = 13
                        .Font.Bold = True
                    End With
                End With
     
                Select Case k
                    Case 1
                        .SetSourceData Source:=Worksheets("Feuil1").Range(choice1), PlotBy:=xlRows
                    Case 2
                        .SetSourceData Source:=Worksheets("Feuil1").Range(choice2), PlotBy:=xlRows
                End Select
     
                For i = 1 To .SeriesCollection.Count
                    With .SeriesCollection(i)
                        .ChartType = xlLine
                        Select Case k
                            Case 1
                                .Name = Worksheets("Feuil1").Range("H4").Offset(i - 1, 0)
                            Case 2
                                .Name = Worksheets("Feuil1").Range("H7").Offset(i - 1, 0)
                        End Select
                        .Border.Color = RGB(0, 0, 255 / i)
                    End With
                Next i
     
                .Legend.Position = xlBottom
     
            End With
        Next k
     
    End With
     
    End Sub
    Le deuxième graphique est plus petit car tes colonnes ne font pas la même largeur, est-ce exact ?

    La couleur est rajouté grace à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Border.Color = RGB(0, 0, 255 / i)
    RGB signfie Red/Green/Blue, les trois couleurs primaire. A toi de placer les couleurs que tu souhaites !

    Dis moi si ce code te convient !

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 193
    Par défaut
    Pour mettre des légendes dans les séries c'est Legend.LegendEntries ??

    moi j'ai fait .Legend.LegendEntries="Cas 1" et ça ne marche pas...

  14. #14
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Oui pour les noms des séries.
    J'ai donc cru que tes séries étaient, comme je l'avais spécifié, sur les plages H4:H7 et H10:H13.
    Pour ajouter le noms des séries à ton graphique, c'est ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .SeriesCollection(i).Name = Worksheets("Feuil1").Range("H4").Offset(i - 1, 0)
    J'avais mis deux cas :
    1) pour ton premier graphique sur la plage H4:H7
    2) pour ton second graphique sur la plage H10:H13
    avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                        Select Case k
                            Case 1
                                .Name = Worksheets("Feuil1").Range("H4").Offset(i - 1, 0)
                            Case 2
                                .Name = Worksheets("Feuil1").Range("H7").Offset(i - 1, 0)
                        End Select
    Bref, où sont les noms de tes séries ? Sur quelles plages ? Sont-elles identiques pour ton premier et ton second graphe ?

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    193
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 193
    Par défaut
    Merci de votre aide!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Nommenclature graphique sous VBA
    Par p51 mustang dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 22/12/2010, 21h49
  2. Graphiques sous VBA (excel)
    Par charlotte3 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/08/2009, 17h22
  3. Graphique sous VBA Excel 2003
    Par sincenono dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/01/2009, 14h44
  4. graphique sous vba
    Par jbggg dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/05/2008, 17h31
  5. [VBA-E]Deplacer un graphique sous Excel
    Par gaudy dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/04/2006, 07h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo