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 :

[E03][VBA][Graphiques] - mise en forme


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 37
    Points : 20
    Points
    20
    Par défaut [E03][VBA][Graphiques] - mise en forme
    Bonjour,

    Je débute en VBA et je découvre les problèmes les uns après les autres.
    J'ai fait un tour dans le forum et les FAQs mais je ne trouve pas une réponse globale à mes problèmes. Voici l'extrait du code que j'utilise pour créer un graphique qui contient plusieurs séries différentes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      Sheets("graphique synthèse").Select
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.SeriesCollection(1).Select
        ActiveChart.SeriesCollection(1).XValues = "=synthèse!R2C1:R" & iIndexFinSomme + 1 & "C1"
        ActiveChart.SeriesCollection(1).Values = "=synthèse!R2C4:R" & iIndexFinSomme + 1 & "C4"
        ActiveChart.SeriesCollection(2).Select
        ActiveChart.SeriesCollection(2).XValues = "=synthèse!R2C1:R" & iIndexFinSomme + 1 & "C1"
        ActiveChart.SeriesCollection(2).Values = "=synthèse!R2C5:R" & iIndexFinSomme + 1 & "C5"
    Voici mes questions :
    - Comment puis paramètrer l'affichage des axes, ici je ne souhaite marquer que les valeurs des séries (écarts variables entre deux X)
    - J'ai l'impression de faire une courbe du type "courbe" mais aucun de mes points de sont reliés.

    Je me doute qu'il existe du code pour paramétrer l'ensemble des éléments permettant la mise en forme des graphiques, existe-il une liste de ces fonctions?

    Merci d'avance

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 54
    Points : 55
    Points
    55
    Par défaut
    Salut, si j'ai bien compris ton prob, tu ne sais pas comment faire pour changer la valeur des axes et l'affichage sur le graphe.

    Je sais plus trop comment faire mais je te conseille d'utiliser l'enregistreur de macro. (Ca a super bien marcher pour moi quand j'ai du bosser sur des graphes)

    GL

  3. #3
    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 546
    Points
    15 546
    Par défaut
    Déjà, tu peux simplifier le code que tu as mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      Sheets("graphique synthèse").Select
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.SeriesCollection(1).XValues = "=synthèse!R2C1:R" & iIndexFinSomme + 1 & "C1"
        ActiveChart.SeriesCollection(1).Values = "=synthèse!R2C4:R" & iIndexFinSomme + 1 & "C4"
        ActiveChart.SeriesCollection(2).Values = "=synthèse!R2C5:R" & iIndexFinSomme + 1 & "C5"
    Tu ne dois pas répéter XValues pour chaque série.
    Pour le type de courbe, c'est dans Type de graphique. (Clic droit sur le graphe)
    Tu as intérêt à le faire à la main, le graphe conservera son format.
    Enfin, dans Format de la zone de graphique, onglet propriétés, coche "Ne pas déplacer ou dimensionner avec les cellules". C'est plus prudent en cas de modif dans un titre ou autre légende, on a vite fait de supprimer le graphe sans le vouloir.
    Tu dis
    A+

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 37
    Points : 20
    Points
    20
    Par défaut
    Merci pour votre aide, mais le problème c'est que manuellement je n'arrive pas à faire apparaitre la courbe entre mes points.

    Ci-joint le le fichier de ma courbe pour préciser mon problème
    Fichiers attachés Fichiers attachés

  5. #5
    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 546
    Points
    15 546
    Par défaut
    J'ai jeté un oeil sur le graphe mais sans la source des données, je ne vois pas grand chose et ne peux que supposer... Y- a-t-il des cellules vides entre les données ? Si oui, inutile de chercher plus loin.
    A+

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 37
    Points : 20
    Points
    20
    Par défaut
    Merci, il y a bien des cellules vides entre les données, puisque je fait une moyenne mensuelle de l'ensemble de mes valeurs. Il faut donc revoir la construction de mes données. Je regarde ça et je vous informe du résultat.

    Merci

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 37
    Points : 20
    Points
    20
    Par défaut
    Je débute vraiment en VBA et je découvre donc les problèmes les uns à la suite des autres. En plus, je dois mettre à jour des macros déjà existante donc ça m'aide mais me limite également.

    Je n'ai pas la possibilité de modifier la source des données donc je voudrais savoir s'il est possible de créer un graphique en ne prenant pas en compte les cases vides entre deux séries de données (données extraites de fichiers .csv).
    Ci-joint mon fichier dans lequel je cherche à obtenir un grapique de synthèse en ne prenant que les valeurs mensuelles et en retirant les cases vides.
    J'avoue que je ne connais pas les fonctions à rajouter dans le code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Sheets("graphique synthèse").Select
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.SeriesCollection(1).XValues = "=synthèse!R2C1:R" & iIndexFinSomme + 1 & "C1"
        ActiveChart.SeriesCollection(1).Values = "=synthèse!R2C4:R" & iIndexFinSomme + 1 & "C4"
        ActiveChart.SeriesCollection(2).Values = "=synthèse!R2C5:R" & iIndexFinSomme
    J'avoue que
    Fichiers attachés Fichiers attachés

  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 546
    Points
    15 546
    Par défaut
    Qu'une ligne à ajouter pour filtrer les seules cellules renseignées de ta feuille synthèse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Worksheets("Synthèse").Range("A:A").AutoFilter Field:=1, Criteria1:="<>"
    Tu dis
    A+

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 37
    Points : 20
    Points
    20
    Par défaut
    J'ai encore du chemin à faire avant d'être autonome en VBA.
    L'idéal pour moi, ce serait d'utiliser ton code dans une autre feuille (masquée) afin de l'utiliser pour créer mon graphique de synthèse.
    voici le code que j'essaie mais ça ne fonctionne pas :

    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
    16
    17
     
        Sheets("synthèse mensuelle").Add , after:=Worksheets("syntèse")
        Sheets("synthèse mensuelle").Visible = False
        Sheets("synthèse mensuelle").Select
        Sheets("synthèse").Select
        Columns("A:E").Select
        Selection.Copy
        Sheets("synthèse mensuelle").Select
        Columns("A:A").Select
        ActiveSheet.Paste
        Range("A:A").AutoFilter Field:=1, Criteria1:="<>"
        Sheets("graphique synthèse").Select
        ActiveSheet.ChartObjects("Graphique 1").Activate
        ActiveChart.SeriesCollection(1).Select
        ActiveChart.SeriesCollection(1).XValues = "=synthèse mensuelle!R2C1:R" & iIndexFinSomme + 1 & "C1"
        ActiveChart.SeriesCollection(1).Values = "=synthèse mensuelle!R2C4:R" & iIndexFinSomme + 1 & "C4"
        ActiveChart.SeriesCollection(2).Values = "=synthèse mensuelle!R2C5:R" & iIndexFinSomme + 1
    Merci d'avance pour votre aide

Discussions similaires

  1. [VBA-E] Mise en forme et VB
    Par Flidy1 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/05/2006, 15h57
  2. [VBA-E] Mise en forme CSV (option regional)
    Par BenoitM dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/05/2006, 15h43
  3. [VBA-E]mise en forme commentaire
    Par bill7 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/03/2006, 16h57
  4. [VBA][Excel] mise en forme conditionnelle
    Par titflocon dans le forum Access
    Réponses: 9
    Dernier message: 19/12/2005, 10h13
  5. [VBA-E] Mise en forme conditionelle
    Par captaine93 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/09/2005, 15h55

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