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 :

MAJ - graphique


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Youni92
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 178
    Par défaut MAJ - graphique
    Bonjour,

    J'ai un petit soucis avec le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sheets("Curves").Select
    ActiveSheet.ChartObjects("Chart 6").Activate
    'Ne fonctionne pas
          'ActiveChart.SeriesCollection(1).Values = Sheets("Data").Range(Cells(89, 10), Cells(89, 24))
    'Fonctionne
    ActiveChart.SeriesCollection(1).Values = Sheets("Data").Range("J89:X89")
    Je souhaite mettre à jour un graphique pointant sur un tableau dont le nombre de colonne varie.
    Je cherche le nombre de colonne en amont, ici 24.
    Vu que je ne peux pas directement faire varié la colonne "X" je souhaite utiliser la notation "RC" mais cela ne fonctionne pas...

    Une idée ?


    EDIT:
    Si je travaille dans une seule et même feuille le code suivant fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'ActiveChart.SeriesCollection(1).Values = Range(Cells(89, 10), Cells(89, 24))
    Mon soucis est vraiment de travailler avec 2 feuilles distinctes

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Worksheets("Data")
        Worksheets("Curves").ChartObjects("Chart 6").Chart.SeriesCollection(1).Values = .Range(.Cells(89, 10), .Cells(89, .Columns.Count).End(xlToLeft))
    End With

  3. #3
    Membre confirmé Avatar de Youni92
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 178
    Par défaut
    Merci !!

    Je ne comprends pas vraiment le code, donc je vais simplement l'utiliser en l'état.
    Encore merci

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Citation Envoyé par Youni92 Voir le message
    Je ne comprends pas vraiment le code, donc je vais simplement l'utiliser en l'état.
    Mauvais choix

    Explication
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim LastCol As Integer
     
    'donne la dernière colonne remplie de la ligne 89 de la feuille Data
    LastCol = Worksheets("Data").Cells(89, Worksheets("Data").Columns.Count).End(xlToLeft)
    Worksheets("Curves").ChartObjects("Chart 6").Chart.SeriesCollection(1).Values = Worksheets("Data").Range(Worksheets("Data").Cells(89, 10), Worksheets("Data").Cells(89, LastCol))
    On peut améliorer la visibilité du code grace à With/End With
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim LastCol As Integer
     
    With Worksheets("Data")
        'donne la dernière colonne remplie de la ligne 89 de la feuille Data
        LastCol = .Cells(89, .Columns.Count).End(xlToLeft)
        Worksheets("Curves").ChartObjects("Chart 6").Chart.SeriesCollection(1).Values = .Range(.Cells(89, 10), .Cells(89, LastCol))
    End With
    Et dans le code #2, j'avais remplacé LastCol directement par sa valeur recherchée

    Les 3 codes fonctionnent identiquement

  5. #5
    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
    Citation Envoyé par mercatog Voir le message
    Mauvais choix



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

Discussions similaires

  1. [XL-2010] MAJ Graphique grâce à une macro
    Par ludo01 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/05/2015, 20h50
  2. [SWT] Affichage d'un graphique : pas de MAJ
    Par Péchereau dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 23/08/2011, 10h42
  3. [AC-2000] MAJ d'un graphique avant export Excel
    Par DarkpaiN dans le forum VBA Access
    Réponses: 0
    Dernier message: 04/05/2011, 11h59
  4. [Langage] MaJ d'une carte, user-friendly, sans retouche graphique
    Par jaybebop dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 10/05/2006, 10h27
  5. MAJ Interface graphique
    Par promopub dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 27/04/2006, 14h33

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