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 excel avec VB


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier Avatar de calimero91
    Inscrit en
    Décembre 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Décembre 2005
    Messages : 183
    Points : 106
    Points
    106
    Par défaut graphique excel avec VB
    bonjour a tous,

    j'ai un tableau dans une feuille sur lequel je pointe pour afficher un graphique. via VB5 j'ajoute des ligne a ce tableau, et j'aurais voulu savoir si il ete possible par code (je pense que oui) de redimmensionner la selection qui sert a afficher le graphique. de maniere a prezndre en compte les lignes que j'ajoute par code.

    merci d'avance a tous.
    cedric.

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Sans les lignes de code qui te servent à créer le graphique, difficile de te guider.
    Tout ce que tu as à faire c'est modifier la plage de données. Tu remplaces celle existante par une varible dont tu modifies les coordonnées de cellules selon ton humeur du moment.
    Un peu de code peut-être...

    A+

  3. #3
    Membre régulier Avatar de calimero91
    Inscrit en
    Décembre 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Décembre 2005
    Messages : 183
    Points : 106
    Points
    106
    Par défaut
    en fait je part d'un graphique qui existe deja depuis longtemps est j'aimerais juste qu'il prenne en compte les nouvelle ligne.je ne creer pas le graphique de mon code je rajoute juste des ligne aux different tableaux.

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Ok.
    En attendant qu'un savant en VB te donne une réponse, voici toujours... en VBA
    Je suppose que ton graphe est identifié (soit par son nom soit par un index)
    Si c'est bon, tu le sélectionnes et affectes la nouvelle plage à la série que tu veux modifier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        With ActiveChart
            .SeriesCollection(1).Values = NouvellePlage
        End With
    Juste pour le principe. En VB, je ne connais pas mais regarde déjà si tu as SeriesCollection dans l'aide.

    A+, désolé de ne pouvoir t'aider plus.

  5. #5
    Membre régulier Avatar de calimero91
    Inscrit en
    Décembre 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Décembre 2005
    Messages : 183
    Points : 106
    Points
    106
    Par défaut
    bonjour ,

    je vais proceder autrement pour mon probleme (enfin si je peu).
    est'il possible de creer une macro VBA excel qui me modifie mon graphique en fonction des tableaux sachant que j'ai 4 feuilles excel (une vue global avec les 4 graphique different que je souhaite avoir, une données_production avec le tableau qui permet de faire le graphique1, une données_causes qui contient 2 tableau me permetant de remplir les graphique 2 et 3 et une derniere feuille données_previsionnel me permettant de faire mon dernier graphique).
    j'aimerais que mes graphique ce reactualise sur l'evenement modification d'une cellule(avec cell_change).
    comme ça quand je rempli mes ligne via mon prog VB je rempli en meme temps une autre cellule est quand cette cellule change je remet a jour mes graphiques.
    pourriez vous m'aidez svp.
    si je n'est pas ete assez clair n'hesitez pas a me demander des precisions.

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Tu as sans doute une autre solution que l'utilisation de cell_change

    Quand tu places quatre graphiques sur une feuille unique dont les données émanent de quatre feuilles différentes, ils restent liés à leurs plages et feuilles respectives. Toute modif des données de ces plages entraînent la modif du/des graphes.
    Dès lors, pourquoi copier les données d'une feuille dans l'autre ? Mieux vaut affecter directement aux graphiques les plages des quatre feuilles pouvant être modifiées.

    Sinon...
    ... dans ta feuille récap, tu te mets en A1 et tu écris un truc du genre
    =feuil1!A1
    Formule que tu recopies sur la plage correspondant à la plage de données de la feuille "feuil1", idem pour feuil2, 3 et 4
    Par très orthodoxe... Mais là, c'est toi qui vois

    A+

  7. #7
    Membre régulier Avatar de calimero91
    Inscrit en
    Décembre 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Décembre 2005
    Messages : 183
    Points : 106
    Points
    106
    Par défaut
    oui mais ça ça marche juste dans le cas ou je modifie les valeur deja presenta dans mes tableaux, ça ne prendra pas en compte les ajout de ligne que je peu faire si???

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Non, si tu ajoutes des lignes, de toute façon, tu es obligé de modifier la plage de données correspondant à la série modifiée. Ce qui n'a rien à voir avec le problème évoqué.
    Pour modifier une plage, tu sélectionnes ton graphe et tu lui affectes la nouvelle. Ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    'AnciennePlage = "A1:B5"
        NouvellePlage = "A1:B7"
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.ChartArea.Select
        ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range(NouvellePlage), PlotBy:=xlColumns
        Range("A1").Select    'Juste pour sortir du graphe
    Pour faire ça de manière automatique - modifier la plage à chaque nouvelle saisie la modifiant, tu peux faire, dans la feuilles contenant tes données, un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("A1").select
    NouvellePlage = Selection.currentRegion.address
    Conditions pour que ça marche : tes données doivent commencer en A1 dans tes quatre feuilles et être cohérentes (pas de ligne ni colonne vide)

    Tu dis

    A+

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 01/04/2019, 18h34
  2. [XL-2000] Construction d'un graphique excel avec des zones en abcisse.
    Par Barbalala22 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/05/2011, 19h13
  3. Manipulation d'objet graphique Excel avec C#
    Par popsmelove dans le forum C#
    Réponses: 6
    Dernier message: 07/04/2009, 12h22
  4. Réponses: 0
    Dernier message: 29/02/2008, 11h33
  5. [VB]Graphique Excel avec VB, plusieurs séries
    Par SimonBrodeur dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/01/2006, 10h43

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