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 :

Ajuster la taille d'un graphique en fonction de son contenu


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 304
    Par défaut Ajuster la taille d'un graphique en fonction de son contenu
    Bonjour,

    j'ai une macro qui crée sur une feuille des graphiques.

    je peux avoir plusieurs graphique horizontalement et verticalement.

    J'ajuste le graphique avec ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
                Set gGraphique = Worksheets(sNomFeuille).ChartObjects.Add(100, 100, 100, 100)
     
                gGraphique.Chart.ChartType = xlLineMarkers
                gGraphique.Chart.SetSourceData source:=Sheets(sNomFeuille).Range(sDebutRange & ":" & sFinRange), PlotBy:= _
                    xlRows
                gGraphique.Chart.Location Where:=xlLocationAsObject, Name:=sNomFeuille
                'gGraphique.Left = Worksheets(sNomFeuille).Columns(iColFinPlage).Left
                'gGraphique.Top = Worksheets(sNomFeuille).Rows(iLigneDebutPlage).Top
                gGraphique.Left = Worksheets(sNomFeuille).Columns(iColDebutPlage).Left
                gGraphique.Top = Worksheets(sNomFeuille).Rows(iLigneFinPlage + 2).Top
     
                gGraphique.Width = Range(sDebutRange & ":" & sFinRange).Width
                gGraphique.Height = 130
    Pour le moment les graph sont ajustés par rapport au tableau source de donnée.

    Cependant, je viens de me rendre compte que parfois quand j ai beaucoup de données le graphique n'affiche pas tout. il faut le redimmensionner à la main ce qui n'est pas correct.

    Il me faudrait une méthode qui permette d'ajuster automatiquement la taille des graph mais ensuite il faut que par rapport a cette taille je puisse continuer a créer des graph sur la droite de la feuille, je sais pas si je suis très clair.

    Si je donne un exemple je crée un graphique qui est ajusté automatiquement, ce graph va de la colonne A à F. Le tableau source va de la colonne A à C.

    Le deuxième graph doit donc être crée après la colonne F et je ne vois pas comment faire.

    Si quelqu'un pourrait m'aider ça serait cool.

    Merci beaucoup.

  2. #2
    Membre expérimenté Avatar de L'Albatros
    Homme Profil pro
    Chercheur en économie - statistique
    Inscrit en
    Avril 2012
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur en économie - statistique
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2012
    Messages : 150
    Par défaut
    Essaie le bout de code ci-dessous, je me rappelle avoir fait un truc dans le genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Position = Range("A20").End(xlDown).Row -10
     
    With ActiveSheet.ChartObjects(1) 'graph 1 de ta feuille active
    .Top = Cells(Position, 10).Top 'position verticale graphique
    .Left = Cells(Position, 10).Left 'position horizontale graphique
    .Width = 300 ' largeur du graph
    .Height = 250 'hauteur du graph
    '...
    End With
    '----------------------------------------------------------------------
    Si j'ai pu vous aider, merci de me le dire avec 1 pouce

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 304
    Par défaut
    Bonjour, je ne comprends pas bien ce code, je ne sais si ça correspond à ce que je veux faire.

    A quoi correspond la cellule "A20"?

    Moi ce que je veux faire c'est d'ajuster automatiquement le graphique en fonction des données qu'il contient, pour exemple s'il y aurait une méthode comme Autofit pour ajuster automatiquement les colonnes, tu vois ?

    La je vois que tu donne une dimension en dur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    .Width = 300 ' largeur du graph
    .Height = 250 'hauteur du graph
    ce n'est pas ce que je veux faire, enfin peu etre que j'ai pas bien compris ton code auquel cas quelques explications serait super cool.

    Merci.

  4. #4
    Membre expérimenté Avatar de L'Albatros
    Homme Profil pro
    Chercheur en économie - statistique
    Inscrit en
    Avril 2012
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur en économie - statistique
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2012
    Messages : 150
    Par défaut
    Bonjour,

    Ce bout de code permet de générer un graphique à un emplacement donné.
    Je m'en sers souvent pour mes rapports financiers.

    Maintenant, "il n'y a plus qu'à" trafiquer ce code pour remplacer les données en dur par un redimensionnement automatique.

    Je n'ai fait que la moitié du travail

    '----------------------------------------------------------------------
    Si j'ai pu vous aider, merci de me le dire avec 1 pouce vert

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 304
    Par défaut
    D'accord merci, j'ai déja positionné les graphiques à un emplacement donné, c'est à dire qu'ils sont dimmensionner en fonction de la plage source de donnée.

    Exemple si la plage source de donnée va de la colonne A à F le graphique aura la largeur de la colonne A à F. Mais ce n'est pas bon puisque les graphiques n'affichent pas toutes les données.

    Et c'est exactement ce que tu dis qu'il reste çà faire que je ne sais pas faire c'est à dire dimmensionner automatiquement les graphiques en fonction des données qu'ils contiennent.

    Si tu as un bout de code qui le permet je suis preneur.

    Merci beaucoup

  6. #6
    Membre expérimenté Avatar de L'Albatros
    Homme Profil pro
    Chercheur en économie - statistique
    Inscrit en
    Avril 2012
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur en économie - statistique
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2012
    Messages : 150
    Par défaut
    Essaie d'intégrer ceci et de le bricoler:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    With ActiveChart
            .HasTitle = True
            .ChartTitle.Characters.Text = "Titre Graphique"
            .Axes(xlCategory, xlPrimary).HasTitle = False
            .Axes(xlValue, xlPrimary).HasTitle = False
            .HasLegend = True
            .Legend.Select
                Selection.Position = xlTop
        End With
    Alors ?

    '----------------------------------------------------------------------
    Si j'ai pu vous aider, merci de me le dire avec 1 pouce

Discussions similaires

  1. Ajustement de la taille d'un bloc en fonction de son contenu
    Par stefsas dans le forum Mise en page CSS
    Réponses: 0
    Dernier message: 28/05/2010, 10h58
  2. Réponses: 7
    Dernier message: 08/02/2010, 17h25
  3. Réponses: 0
    Dernier message: 23/02/2009, 16h42
  4. Adapter la taille d'un JPanel en fonction de son contenu
    Par SeaShell dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 20/04/2008, 22h49
  5. [HTML/CSS] Taille d'un <div> en fonction de son contenu
    Par hedgehog dans le forum Mise en page CSS
    Réponses: 12
    Dernier message: 14/12/2006, 18h57

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