Excel dimensionnement automatique

Fermé
lelex - 7 mars 2012 à 10:15
Raymond PENTIER Messages postés 58392 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 22 avril 2024 - 7 mars 2012 à 13:39
Bonjour,

Je suis sur Excel 2003.
J'ai plusieurs graphiques identiques avec des donnés d'ordres de grandeurs différents.
Par exemple le graph 1 a des données qui vont de 0 à 100 et le graph 2 des données qui vont de 0 à 10000.
Je souhaite que les zones de traçage aient exactement les mêmes dimensions pour pouvoir les copier dans word.
Je fais d'abord le 1er graph que je copie/colle pour faire le 2eme. Puis au moment ou je change les données du 2ème et donc les ordres de grandeur, la largeur de l'axe change (normal les données qui allaient par exemple jusqu'à 10000 vont maintenant jusqu'à 100 et la police est la même).
Cependant, Excel change tout seul la taille de la zone de traçage pour s'adapter à la taille du graphique. Je voudrais que cette zone de traçage ai la même dimension sur les 2 graph, car ça change aussi la largeur des barres quand c'est un histogramme par exemple.

Comment empêcher le redimensionnement automatique de la zone de traçage ?

Merci


A voir également:

2 réponses

ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
Modifié par ccm81 le 7/03/2012 à 11:13
bonjour

sans passer par VBA je ne vois pas
sinon quelque chose comme ça qui redimensionne les graphiques 2, 3, ... comme le 1
à mettre dans un module général (Alt-F11 puis Insertion/module et copier/coller

Public Sub redimgr() 
Dim nbgr As Long, nugr As Long 
With ActiveSheet 
  ' nombre de graphiques dans la feuille active 
  nbgr = ActiveSheet.ChartObjects.Count 
  For nugr = 2 To nbgr 
    ' taille graphique 
    .ChartObjects(nugr).Width = .ChartObjects(1).Width 
    .ChartObjects(nugr).Height = .ChartObjects(1).Height 
    ' position aire graphique 
    .ChartObjects(nugr).Chart.PlotArea.Top = .ChartObjects(1).Chart.PlotArea.Top 
    .ChartObjects(nugr).Chart.PlotArea.Left = .ChartObjects(1).Chart.PlotArea.Left 
    ' taille aire graphique 
    .ChartObjects(nugr).Chart.PlotArea.Height = .ChartObjects(1).Chart.PlotArea.Height 
    .ChartObjects(nugr).Chart.PlotArea.Width = .ChartObjects(1).Chart.PlotArea.Width 
    ' taille police axes 
    .ChartObjects(nugr).Chart.Axes(xlCategory).TickLabels.Font.Size = .ChartObjects(1).Chart.Axes(xlCategory).TickLabels.Font.Size 
    .ChartObjects(nugr).Chart.Axes(xlValue).TickLabels.Font.Size = .ChartObjects(1).Chart.Axes(xlCategory).TickLabels.Font.Size 
  Next nugr 
End With 
End Sub

bonne suite
0
Raymond PENTIER Messages postés 58392 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 22 avril 2024 17 095
7 mars 2012 à 13:39
Bonjour lelex.

Je n'ai pas observé que "Excel change tout seul la taille de la zone de traçage pour s'adapter à la taille du graphique".
Par contre il est vrai que Excel change tout seul la taille de la zone de traçage pour s'adapter à la graduation des ordonnées ; en effet 10000 prenant plus de place que 100, l'axe des y se décale un peu vers la droite.
La solution consiste alors, dans la mise en forme de l'axe des ordonnées, caté-gorie Nombre, à ajouter un format personnalisé 00000 ; ainsi dans ton graphique à faibles valeurs, les graduations verticales s'afficheront 00100, 00200 etc.

Cordialement.
0