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 :

Nombre de séries


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2017
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2017
    Messages : 69
    Par défaut Nombre de séries
    Bonjour à tous

    Je souhaiterai tracer un graphique bâton en fonction d'un nombre n représentant le nombre de série (=nombre de case cochée dans ma listbox)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Worksheets("Analysis").Activate
    Dim p As Integer
    p = MonthlyKPI.Subox.ListCount
     
     
    MsgBox (p)
     
    For i = 1 To p
    ActiveSheet.ChartObjects("Graphique 1").Activate
     
    Charts("Graphique 1").SeriesCollection(i).Values = Worksheets("Analysis").Range(.Cells(6, 17), .Cells(6 + i, 17))
    Next
    End Sub
    Ligne 11 j'ai le message d'erreur suivant.

    Erreur de compilation : Référence incorrecte u non qualifiée.

    Est ce que quelqu'un peut me donner une piste de résolution ...?

    En vous remerciant beaucoup !

  2. #2
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Bonjour,

    Tu utlises qu'à moitié (et du coup, mal) la syntaxe With...End With.
    Ce que tu écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Worksheets("Analysis").Activate
    .Range("A1").Value = "toto"
    Syntaxe correcte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Worksheets("Analysis")
        .Range("A1").Value = "toto"
    End With
    Quand on note un point sans rien devant, c'est qu'on fait référence à un objet d'un bloc With.

  3. #3
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2017
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2017
    Messages : 69
    Par défaut
    Bonjour riaolle et merci pour ton conseil.

    Cependant je ne vois pas cette erreur dans mon code ...

  4. #4
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Tu écris ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Charts("Graphique 1").SeriesCollection(i).Values = Worksheets("Analysis").Range(.Cells(6, 17), .Cells(6 + i, 17))
    Tes points ne font références à rien.

  5. #5
    Membre confirmé
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2017
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2017
    Messages : 69
    Par défaut
    D'accord merci bp riaolle

    J'ai modifié mon code en conséquence.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    For i = 1 To p
    With Sheets("Analysis")
    ActiveSheet.ChartObjects("Graphique 1").Activate
     
    Charts("Graphique 1").SeriesCollection(1).Values = Worksheets("Analysis").Range(.Cells(6, 17), .Cells(6 + i, 17))
    ActiveChart.SeriesCollection(1).XValues = Worksheets("Analysis").Range(.Cells(6, 16), .Cells(6 + i, 16))
    End With
    Next
    Ligne5 : l'indice n'appartient pas à la sélection.

    Tu as une nouvelle idée ....?

    En te remerciant pour ton aide

  6. #6
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Si tu utilises With va jusqu'au bout
    l'indice n'appartient pas à la sélection
    Veut dire que qqc n'existe pas. Par ex. tu fais appel à une feuille qui n'existe pas ou à un graphique qui n'existe pas etc...
    Essaie avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For i = 1 To p
    With Sheets("Analysis")
        .ChartObjects("Graphique 1").Chart.SeriesCollection(1).Values = .Range(.Cells(6, 17), .Cells(6 + i, 17))
        .ChartObjects("Graphique 1").Chart.SeriesCollection(1).XValues = .Range(.Cells(6, 16), .Cells(6 + i, 16))
    End With
    Next
    Pourquoi utilises-tu une boucle ? Tu veux que la plage de données aille de la ligne 6 à la ligne 6+p ? Alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With Sheets("Analysis")
        .ChartObjects("Graphique 1").Chart.SeriesCollection(1).Values = .Range(.Cells(6, 17), .Cells(6 + p, 17))
        .ChartObjects("Graphique 1").Chart.SeriesCollection(1).XValues = .Range(.Cells(6, 16), .Cells(6 + p, 16))
    End With
    Sans boucle !

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

Discussions similaires

  1. [HighCharts] Nombre de séries variables
    Par yves51 dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 04/03/2015, 12h35
  2. [XL-2003] nombre limite de séries pour axe secondaire
    Par tremens dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 07/04/2010, 15h37
  3. Réponses: 6
    Dernier message: 15/10/2009, 21h18
  4. Nombre de fichiers ouverts simultanément
    Par matrixfan dans le forum C++Builder
    Réponses: 3
    Dernier message: 27/05/2002, 17h47
  5. [Kylix] Probleme de nombre flottant!!
    Par yopziggy dans le forum EDI
    Réponses: 5
    Dernier message: 02/05/2002, 10h13

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