Excel dimensionnement automatique

lelex -  
Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   -
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

2 réponses

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
  2. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 482
     
    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