VBA / Définir taille graphique à sa création

VBA / Définir taille graphique à sa création - VB/VBA/VBS - Programmation

Marsh Posté le 13-07-2010 à 10:40:28    

Bonjour à tous,
 
J'ai un petit soucis en VBA qui tient en quelques phrases :  
 
J'automatise des statistiques pour mon boulot.  
Une de mes macros créée des histogrammes qui ont pour étiquette des pourcentages. Mon problème est que je veux une deuxième étiquette, placée juste au dessus de chaque barre de l'histogramme, qui indique la fraction qui a mené à ce pourcentage (exemple : j'ai 25 % en étiquette, je veux une deuxième étiquette avec 5/20, ou 7/28 etc...).  
J'arrive à inclure cette deuxième étiquette dans le graphique (à l'aide de textbox), mais les valeurs de cette étiquette ne se placent pas où elles le devraient (juste au dessus de leur barre respective). J'ai donc adaptée ma macro sur un graphique "test", et ça marche plutôt bien.  
J'aimerais généraliser ça pour la plupart de mes histogrammes. Cependant, je n'ai réussi à adapter ma macro qu'à un certains type de graph (taille et largeur précise). J'ai donc besoin soit :
 
                         - de définir la taille et la largeur des graphiques (ainsi que des zones de traçage) à la création du graphique. Mais cette solution m'obligerait à toujours créer des graphiques de la même taille.
                         - ou, idéalement, de stocker la taille et la largeur du graphique (ainsi que des zones de traçage) dans des variables.  
 
Mais je ne sais point comment faire, et l'enregistreur n'est pas super utile sur ce coup là :(
 
Merci d'avance de votre aide !

Reply

Marsh Posté le 13-07-2010 à 10:40:28   

Reply

Marsh Posté le 13-07-2010 à 11:17:21    

Hello
 
Je ne suis pas sur d'avori tout compris...
Mais, pour connaitre la largeur et la hauteur d'une zone graphique et les affecter dans des variables un truc comme ca devrait t'aller.  

Code :
  1. 'Code
  2.     Largeur = ActiveSheet.Shapes("Graphique 1" ).Width
  3.     Hauteur = ActiveSheet.Shapes("Graphique 1" ).Height


 
Pour la zone graphique :

Code :
  1. 'code
  2.     ActiveSheet.ChartObjects("Graphique 1" ).Activate
  3.     ActiveChart.PlotArea.Width = 350
  4.     ActiveChart.PlotArea.Height= 50


Message édité par SuppotDeSaTante le 13-07-2010 à 11:17:54

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 14-07-2010 à 16:36:13    

Salut, sans avoir également tout compris , pour positionner et imposer la taille d'un graphe


Dim sNomGraphe As String
Dim Emplacement As Range
Dim Graphe As ChartObject
 
    .....
 
    sNomGraphe = ActiveChart.Parent.Name
 
    Set Emplacement = ShDatas.Range("C4:P40" )
    Set Graphe = ShDatas.ChartObjects(sNomGraphe)
 
    With Graphe
        .Left = Emplacement.Left
        .Top = Emplacement.Top
        .Height = Emplacement.Height
        .Width = Emplacement.Width
    End With
     
    Set Graphe = Nothing
    Set Emplacement = Nothing
 


Message édité par kiki29 le 14-07-2010 à 16:39:08
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed