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 :

Tester existence d'une série sur un graphique qui en contient plusieurs [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 22
    Par défaut Tester existence d'une série sur un graphique qui en contient plusieurs
    Bonjour à tous,

    J'ai un graphique nomme "Graphique 1" sur lequel sont tracées 1 à 3 courbes. Ces courbes sont tracées par une macro et se nomment par défaut "Série1" , "Série2" et "Série3".

    J'ai besoin de tester l'existence des séries 2 et 3 avant d'exécuter du code, mais je ne parviens pas à faire fonctionner correctement la fonction.

    J'ai essayé deux méthodes pour tester l'existence d'une série. Voici la première basée sur un test logique. Ça fonctionne si la série existe, mais pas si elle n'existe pas (erreur d'exécution 1004, paramètre non valide) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Function ExistenceCourbe(MaCourbe As String) As Boolean
     
    ExistenceCourbe = ActiveSheet.ChartObjects("Graphique 1").Chart.SeriesCollection(MaCourbe).Name <> ""
     
    End Function

    Et la deuxième, plus lourde, qui balaye toutes les séries présentes dans le graphique et renvoie "vrai" si la série que je cherche y est. Là ça ne marche jamais (erreur 438, propriété ou méthode non gérée par l'objet), je suppose que l'erreur vient de la syntaxe :

    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
     
    Function ExistenceCourbe(MaCourbe As String) As Boolean
     
    Dim Courbe As Chart
     
    ExistenceCourbe = False
     
    For Each Courbe In ActiveSheet.ChartObjects("Graphique 1") 'Je pense que la syntaxe n'est pas correcte ici
        If (Courbe.Name = MaCourbe) Then
            ExistenceCourbe = True
            GoTo jump
        End If
    Next Courbe
     
    jump: End Function

    Idéalement, j'aimerais réussir à faire fonctionner la première méthode qui est beaucoup plus rapide à exécuter, mais la deuxième me convient aussi.

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function ExistSerie(GRAPH, SERIE, Optional Ws As Worksheet) As Boolean
             If Ws Is Nothing Then Set Ws = ActiveSheet
             On Error Resume Next
             ExistSerie = IsObject(Ws.ChartObjects(GRAPH).Chart.SeriesCollection(SERIE))
    End Function
    _______________ _____________________________________ _____________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 22
    Par défaut
    Aha merci c'est parfait !

    Vachement utile cette fonction IsObject.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/05/2012, 14h24
  2. tester l'existence d'une servlet sur swing
    Par mouss4rs dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 20/03/2008, 17h11
  3. addition d'une série sur un graphique par formule
    Par 20100. dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/01/2008, 16h13
  4. Tester l'Existence d'une PS sur FB
    Par akli_agha dans le forum SQL
    Réponses: 3
    Dernier message: 09/11/2007, 16h01
  5. Tester l'existence d'une page sur Internet
    Par breumtch dans le forum Access
    Réponses: 3
    Dernier message: 01/02/2007, 17h51

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