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 :

Mise a jour graphique automatiquement d'un tableau


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 41
    Points : 30
    Points
    30
    Par défaut Mise a jour graphique automatiquement d'un tableau
    Bonsoir tout le monde,
    Voila , en fait je suis toute débutante en terme de macro vba en excel.
    Je voudrais mettre a jour un graphe a chaque fois que j'ajoute des données dans mon tableau sans avoir le besoin de faire les changement aussi sur les données du graphe.
    NB : j'ai plusieurs courbe sur le graphe avec un axe secondaire
    Quelqu'un pourra m'aider , j'en ai besoin pour mon boulot.
    J'attends vos réponses.
    Merci à Vous.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 84
    Points : 90
    Points
    90
    Par défaut
    En fait, ç'est très simple. Il y a une seule règle à respecter, alors le graphique se mettra à jour tout seul, pas besoin de macro. La règle est de toujours insérer des lignes (ou de supprimer), dans la zone définie comme plage de données pour le graphique (qu'elle soit, l'insertion, manuelle ou en VBA).

    Par exemple si dans ton tableau tu a des données entre les lignes 5 et 1950, et que tu a par ex.:
    - sur colonne A = la date (prise comme axe x)
    - sur colonne B = la valeur (prise comme axe y)
    - sur colonne C = la somme des valeurs (prise comme deuxième axe y)
    tu vas avoir donc 2 séries de données. Il faut laisser un petit peu d'espace à la fin, en définissant dans ton graphique la plage de données = 5:2000 et ensuite toute modification du tableau fais-le dans cette plage (supprime ou insère des lignes avant la dernière ligne de la plage, initialement = 2000). Les plages et le graphique se mettront à jour automatiquement. Par contre, si tu insère des lignes après la dernière ligne de la plage, cela n'est pas pris en compte automatiquement, il faudra que tu modifie à la main la plage pour chaque Série dans ton graphique.

    Pour définir la plage de données dans le graphique, utilise le bouton 3 de la souris sur le graphique / Données source / Série / modifier à la main la plage. Elle sera quelque chose du genre =Feuil1!$B$5:$B$2000. Il est préférable de ne pas utiliser le petit bouton situé à droite (qu'éventuellement la première fois), ensuite ç'est plus simple d'écrire à la main la valeur qui donne la dernière ligne de la plage. Fais cela pour chaque Série de données s'il y a plusieurs séries.

    a+!

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 84
    Points : 90
    Points
    90
    Par défaut
    Maintenant, puisqu'en on est là, puis-je poser moi aussi une question ? Parce que pour ajouter une ligne dans un tableau, en VBA, ce n'est pas si évident (pour moi). Supposant qu'on a déjà des lignes dans le tableau avec certaines caractéristiques graphiques et pouvant contenir éventuellement des formules. Je propose le code suivant pour insérer une ligne (je n'ai pas trouvé mieux):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ' Insérer la ligne irow
    Feuil1.Rows(irow).Copy
    Feuil1.Rows(irow).Insert Shift:=xlDown
    Feuil1.Rows(irow).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    ' Copier et corriger les formules
    ncol = Feuil1.UsedRange.Columns.Count
    For j = 1 To ncol
        Feuil1.Cells(irow, j).FormulaR1C1 = Feuil1.Cells(irow - 1, j).FormulaR1C1
        Feuil1.Cells(irow + 1, j).FormulaR1C1 = Feuil1.Cells(irow, j).FormulaR1C1
    Next
    Les premières 3 lignes vont insérer avant la ligne irow une autre ligne identique, l'ancienne ligne irow devenant irow+1. Les caractéristiques graphiques sont respectées.

    Le problème vient des formules, qui ne sont pas copiées et que je copie "à la main" dans une boucle (avec la première ligne dans la boucle). J'utilise pour cela les formules contenues dans la ligne irow-1, qui précède celle insérée, et pas celles de la ligne copiée (devenue irow+1), et cela à cause du deuxième problème.

    Le deuxième problème vient du fait que si dans la ligne copiée il y a des formules qui font référence à la ligne précédente, Excel change automatiquement ces formules en les faisant faire référence à la ligne irow-1 et pas à la ligne insérée (!). C'est peut être logique pour Excel, mais pas du tout dans la logique du tableau. Je suis obligé dans ce cas d'écrire une deuxième ligne dans ma boucle.

    Enfin vous voyez, c'est un casse tête. Cela fonctionne en tout cas (s'il n'y a pas des formules faisant référence à la ligne n-2, cas où il va falloir ajouter encore une ligne !).

    Est-ce que quelqu'un a une meilleure solution ?

Discussions similaires

  1. Mise a jour graph automatique via macro vba
    Par undo74 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 11/06/2015, 12h10
  2. [AC-2010] Mise a jour Graphique
    Par dodo28 dans le forum VBA Access
    Réponses: 2
    Dernier message: 27/01/2012, 17h17
  3. [XL-2007] Mise a jour graphe automatique apres choix de données
    Par glassgreen13 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 13/07/2010, 17h27
  4. Réponses: 5
    Dernier message: 22/06/2009, 14h45
  5. [Refresh] Probleme de mise a jour graphique
    Par Clorish dans le forum Composants VCL
    Réponses: 4
    Dernier message: 25/07/2005, 18h44

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