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 :

Graph : non redimension auto de l'axe des abscisses [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 100
    Par défaut
    Bonjour,
    Je travaille actuellement sur un graphique que j'ai incorporé dans un userform grace aux bibliotheques OWc10 et OWC11.

    En abscisse je manipule des dates, en ordonnée j'ai des valeurs.

    En abscisse, chaque date est espacé d'un mois.

    j'ai un problème car : lorsque j'ai très peu de date (abscisse), excel en rajoute automatiquement (au lieu d'avoir une date tout les mois, j'ai deux dates par mois). Et au contraire, lorsque j'ai trop de date, excel va regrouper plusieurs mois ensemble.
    Je ne veux pas de ce fonctionnement. Je veux que les valeurs affiché en abscisse soit uniquement celle que je lui ai donné. Pas plus, pas moins.

    Connaitriez vous l'astuce pour avoir une echelle des abscisse fixe et non pas ajusté automatiquement?


    Encore merci de votre aide!!
    Loic

    Comme un imprim écran vaut souvent bien mieux qu'un long discours, voici en image mon problème :




    Je pense que la solution se trouve certainement dans la propriété de ChAxis Object Mais j'ai pas réussi a trouver l'information sur internet.

    D'avance, merci pour votre aide.


    Voici le code que j'utilise pour le graph :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
           With Cht
                'Ajoute le tableau d'abscisses
                .SetData C.chDimCategories, C.chDataLiteral, Tableau
                'Ajoute la légenge pour chaque serie
                .SeriesCollection(x).Caption = Cells(j + trak_right_title_row + 1, TT_project_col) & " " & Cells(j + trak_right_title_row + 1, TT_L4_col) & " " & Cells(j + trak_right_title_row + 1, TT_L5_col) & " " & Cells(j + trak_right_title_row + 1, TT_status_col)
                'Affiche valeur de chaque point
                '.SeriesCollection(x).DataLabelsCollection.Add
                'Définit la position des valeurs affichées (au dessus par défaut)
     
                'Ajoute le tableau d'ordonnées ( Plage() )
                .SeriesCollection(x).SetData C.chDimValues, C.chDataLiteral, Plage
                'Définit la couleur de la série
                .SeriesCollection(x).Interior.Color = 50000 * (j + 1)
            End With

    PS : les mois sur le graphique sont affichés à la mode américaine (mois, jour, année), c'est normal.

    Loic

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Bonjour,

    Une piste avec l'exemple en pièce jointe.
    Pour les dates, je pense qu'il faut les transformer en type String avec une quote ( ' ) pour qu'Excel ne puisse pas automatiquement les convertir.
    Pour les ordonnées, voir peut-être du côté de CH.Axes(xlValue).TickLabels.NumberFormat = "# ##0.000"

    Reste à voir si cela peut s'adapter à un graphique dans un UserForm.

    Bon courage

  3. #3
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 100
    Par défaut
    Hello PMO,
    J'ai essayé ta solution et effectivement ca marche. Par contre, parce que j'affiche mon graph dans un userform, le quote apparait à l'écran ce qui n'est pas très propre.
    En continuant à chercher j'ai trouvé mon bonheur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       myChart.Axes(0).GroupingType = chAxisGroupingNone
    Grace à cette ligne de code, le graph de regroupe pas mes données. Cette ligne de code a également résolue mon problème de decimal en ordonnée.

    Merci de ton aide, ca m'a aidé à trouver la solution!!

    Bonne journée.

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

Discussions similaires

  1. [XL-2003] Empêcher mise à jour auto de l'axe des abscisses d'un graph
    Par oli835 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 03/06/2014, 13h28
  2. Réponses: 0
    Dernier message: 16/06/2011, 11h49
  3. Trouver ou mon graphe coupe l'axe des abscisses
    Par Gnap69 dans le forum Signal
    Réponses: 7
    Dernier message: 31/07/2010, 00h00
  4. [Artichow] Afficher axes des abscisse quand le graph ne commence pas à 0
    Par dark_vidor dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 02/06/2009, 12h20
  5. Réponses: 2
    Dernier message: 05/08/2008, 16h43

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