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 :

Problème Legend graphique


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 30
    Par défaut Problème Legend graphique
    Bonjour,
    dans ma macro je cherche à créer un graphique constitué de différentes séries suivant certaines conditions. Lorsqu'une des séries ne rempli pas la condition elle n'est pas créer jusque là tout va bien sauf que malgrès qu' elle ne soit pas créer, elle figure dans la légende. Je cherche mais je ne trouve pas de solution, j'arrive juste à supprimer totalement la légende.
    Quelqu'un pourrait-il m'aider?
    voici mon code:

    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
      If NOx <> "" Or NO <> "" Then
        Set Ch2 = ThisWorkbook.Charts.Add
        Ch2.ChartType = xlXYScatterLinesNoMarkers
        Ch2.Name = "NOx-NO Essai 1"
        Ch2.HasTitle = True
        Ch2.ChartTitle.Text = "Essai 1"
        Ch2.PlotArea.Border.LineStyle = xlContinuous
     
            For Each serie In Ch2.SeriesCollection
                serie.Delete
            Next
     
            If Not NOx Is Nothing Then
             With Ch2.SeriesCollection.NewSeries
                .Name = ThisWorkbook.Worksheets("données corrigées").Cells(10, 7)
                .Values = PlageNOx
                .XValues = Plage1
             End With
            End If
            If Not NO Is Nothing Then
             With Ch2.SeriesCollection.NewSeries
                .Name = ThisWorkbook.Worksheets("données corrigées").Cells(10, 8)
                .Values = PlageNO
                .XValues = Plage1
             End With
            End If
     
        With Ch2.Axes(xlValue, xlPrimary)
        .HasTitle = True
        .AxisTitle.Text = "ppm"
        .AxisTitle.Orientation = 90
        .MajorGridlines.Delete
        End With
     
        With Ch2.Axes(xlCategory)
        .MinimumScale = CDate(cDebut1.Offset(, -1))
        .MaximumScale = CDate(cFin1.Offset(, -1))
        End With
     
      End If

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Essaie comme ceci :

    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
    If NOx <> "" Or NO <> "" Then
        Set Ch2 = ThisWorkbook.Charts.Add
        Ch2.ChartType = xlXYScatterLinesNoMarkers
        Ch2.Name = "NOx-NO Essai 1"
        Ch2.HasTitle = True
        Ch2.ChartTitle.Text = "Essai 1"
        Ch2.PlotArea.Border.LineStyle = xlContinuous
     
        For Each serie In Ch2.SeriesCollection
            serie.Delete
        Next
        Ch2.SetElement (msoElementLegendNone)
        If Not NOx Is Nothing Then
            With Ch2.SeriesCollection.NewSeries
                .Name = ThisWorkbook.Worksheets("données corrigées").Cells(10, 7)
                .Values = PlageNOx
                .XValues = Plage1
            End With
        End If
        If Not NO Is Nothing Then
            With Ch2.SeriesCollection.NewSeries
                .Name = ThisWorkbook.Worksheets("données corrigées").Cells(10, 8)
                .Values = PlageNO
                .XValues = Plage1
            End With
        End If
     
        With Ch2.Axes(xlValue, xlPrimary)
            .HasTitle = True
            .AxisTitle.Text = "ppm"
            .AxisTitle.Orientation = 90
            .MajorGridlines.Delete
        End With
     
        With Ch2.Axes(xlCategory)
            .MinimumScale = CDate(cDebut1.Offset(, -1))
            .MaximumScale = CDate(cFin1.Offset(, -1))
        End With
        ActiveChart.SetElement (msoElementLegendRight)
    End If

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 30
    Par défaut
    merci mais erreur d"éxecution
    la méthode 'setelement' de l'objet 'chart' à échoué

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Tu devrais préciser au départ ta version d'Excel, ça fait souvent gagner du temps. C'est particulièrement utile pour les TCD et les graphiques. Indique également la ligne en erreur.

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 30
    Par défaut
    merci j'ai trouvé une solution comme cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        If NOx <> "" Xor NO <> "" Then
            If NOx <> "" Then
            Ch2.Name = "NOx Essai1"
            Ch2.ChartTitle.Text = "Evolution des oxydes d'azote pendant l'essai 1"
            Ch2.SetElement (msoElementLegendNone)
            End If
            If NO <> "" Then
            Ch2.Name = "NO Essai1"
            Ch2.ChartTitle.Text = "Evolution du monoxyde d'azote pendant l'essai 1"
            Ch2.SetElement (msoElementLegendNone)
            End If
        Else
        Ch2.SetElement (msoElementLegendTop)
        End If

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/08/2006, 13h44
  2. Problème Kit graphique
    Par Requiem32 dans le forum Webdesign & Ergonomie
    Réponses: 2
    Dernier message: 31/07/2006, 12h15
  3. [VBA-E]Problème Variable/Graphique
    Par 47-47 dans le forum Macros et VBA Excel
    Réponses: 32
    Dernier message: 21/02/2006, 10h34
  4. problème carte graphique NVIDIA
    Par reboots dans le forum Windows XP
    Réponses: 12
    Dernier message: 12/10/2005, 16h28
  5. problème avec graphique dans état access
    Par petitmic dans le forum Access
    Réponses: 5
    Dernier message: 07/09/2005, 14h55

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