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 l'echelle automatique de graphiques


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2010
    Messages : 125
    Points : 105
    Points
    105
    Par défaut Mise a l'echelle automatique de graphiques
    Bonjour a tous,

    J'ai un petit problemem de mise en forme de mes graphiques que je genere automatiquement avec une macro.

    Sur chaque graphique, il y a deux courbes (dont une droite lineaire (f(x)=x))
    mon probleme est j'aimerai que mon graph (dont les axes en abscisses et en ordonnes sont des %) ait le meme maximum sur chaque qxe (145% par exemle)

    Mais vu que ma macro genere une dizaine de graphs differents (chacun sur une nouvelle feuille), j'aimerai que le maximum des eaxes ne soit pas une valeur arbitraire, mais s'adapte aux valeurs maximales presente dans les donnees.
    Par exemple si mon maximum en abscisse est 56% et celui en ordonne est 115%, j'aimerai que mes deux axes soient gradues jusqu'a 120%.

    Merci d'avance

  2. #2
    Modérateur
    Avatar de Overcrash
    Homme Profil pro
    Architecte Logiciel et responsable CRM (Salesforce)
    Inscrit en
    Mai 2008
    Messages
    1 254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Architecte Logiciel et responsable CRM (Salesforce)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 254
    Points : 1 875
    Points
    1 875
    Par défaut
    Bonjour,

    Tu peux pas faire un truc de ce style :

    Tu compare les valeurs, tu prend la plus grand tu lui ajoute 10% et tu l'attribut au deux axes ?

  3. #3
    Membre régulier
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2010
    Messages : 125
    Points : 105
    Points
    105
    Par défaut
    hmmm du coup ca me rajoute un point sur mon graphique non ?

    En fait j'aimerai savoir si y a une fonction qui serait du genre :

    Axe.X.Max = Valeur que je veux (ou cellule) et de meme pour l'axe Y.

  4. #4
    Modérateur
    Avatar de Overcrash
    Homme Profil pro
    Architecte Logiciel et responsable CRM (Salesforce)
    Inscrit en
    Mai 2008
    Messages
    1 254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Architecte Logiciel et responsable CRM (Salesforce)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 254
    Points : 1 875
    Points
    1 875
    Par défaut
    non,

    On parle de la même chose je pensais que tu avais pas le raisonnement, j'ai trouver ceci sur le net essaye de voir si tu as pas un méthode pour modifier les axes comme tu veux.

    le graphique est un Chart
    quand le graphique voulu est selectionné, il devient l'ActiveChart
    On modifie son titre avec Activechart.ChartTitle= "toto"
    On modifie sa légende avec Activechart.Legend = "Ma Legende"
    Utilise l'explorateur d'objet sous visual basic !

  5. #5
    Membre régulier
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2010
    Messages : 125
    Points : 105
    Points
    105
    Par défaut
    Bien vu d'utiliser la bibliotheque des fonctions.
    je connaissais pas et ca m'a permis de resoudre partiellement mon probleme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With ActiveChart
    .Axes(xlValue).MaximumScale = 2
    end with
    Ca me donne ce que je veux, sauf que j'arrive pas a faire pareil pour l'axe des abscisses pour le moment.

  6. #6
    Modérateur
    Avatar de Overcrash
    Homme Profil pro
    Architecte Logiciel et responsable CRM (Salesforce)
    Inscrit en
    Mai 2008
    Messages
    1 254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Architecte Logiciel et responsable CRM (Salesforce)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 254
    Points : 1 875
    Points
    1 875
    Par défaut
    Ce ne serais pas ca : xlCategory ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    .Axes(xlCategory).MinimumScale = 2
    test et tiens moi au courant

  7. #7
    Membre régulier
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2010
    Messages : 125
    Points : 105
    Points
    105
    Par défaut
    Non, c'est pas ca...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
       With ActiveChart
            .HasTitle = True
            .ChartTitle.Characters.Text = "FS(Preis)" & "_" & Graphik.Range(Donnees.Cells(1, 1).Offset(0, -2).Address).Value
     
     
            .Axes(xlCategory, xlPrimary).HasTitle = True
            .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Preis(%)"
            .Axes(xlValue, xlPrimary).HasTitle = True
            .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "FS(%)"
            .Axes(xlValue).MaximumScale = 2
     
     
        End With
    Voila la partie de code sur laquelle je travaille.
    L'axe des X est l'axe qui s'appelle Preis

  8. #8
    Modérateur
    Avatar de Overcrash
    Homme Profil pro
    Architecte Logiciel et responsable CRM (Salesforce)
    Inscrit en
    Mai 2008
    Messages
    1 254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Architecte Logiciel et responsable CRM (Salesforce)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 254
    Points : 1 875
    Points
    1 875
    Par défaut
    Pour redimensionner les axes voici un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        With ActiveSheet.ChartObjects(1).Chart
     
            .Axes(xlCategory).MinimumScale = Range("E1").Value
            .Axes(xlCategory).MaximumScale = Range("E2").Value
            .Axes(xlValue).MinimumScale = Range("E3").Value
            .Axes(xlValue).MaximumScale = Range("E4").Value
     
        End With
    Normalement ca devrait marcher ...

  9. #9
    Membre régulier
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2010
    Messages : 125
    Points : 105
    Points
    105
    Par défaut
    En fait ca aurait pu marcher bien plus tot.
    Mon probleme venait du type de graphe que j'avais choisis qui ne permettait pas de modifier l'axe des abscisses.

    Avec celui ci : xlXYScatterSmooth ca marche nickel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
       .Axes(xlCategory, xlPrimary).HasTitle = True
            .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Preis(%)"
            .Axes(xlValue, xlPrimary).HasTitle = True
            .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "FS(%)"
            .Axes(xlValue).MaximumScale = 1.3
            .Axes(xlCategory).MaximumScale = 1.3

  10. #10
    Modérateur
    Avatar de Overcrash
    Homme Profil pro
    Architecte Logiciel et responsable CRM (Salesforce)
    Inscrit en
    Mai 2008
    Messages
    1 254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Architecte Logiciel et responsable CRM (Salesforce)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 254
    Points : 1 875
    Points
    1 875
    Par défaut


    Ha oui bien pensé

    Bonne continuation

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

Discussions similaires

  1. [XL-2003] Mise à jour de l'echelle pour un graphique
    Par korni184 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 24/08/2010, 14h25
  2. Réponses: 10
    Dernier message: 03/03/2009, 11h46
  3. Echelle Automatique graphique / val mini 0 ou pas
    Par lbar012001 dans le forum Contribuez
    Réponses: 1
    Dernier message: 04/02/2008, 09h45
  4. ajustement automatique des echelles d'un graphique
    Par riri2938 dans le forum VBA Access
    Réponses: 2
    Dernier message: 19/12/2007, 20h58
  5. (vba excel) echelle horaire pour graphique
    Par DirtyA:ex dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 27/06/2006, 14h00

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