Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Pb d'échelle sur un graphique

  • Initiateur de la discussion Initiateur de la discussion Anita
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

Anita

Guest
Bonjour au forum!!

J'ai un tableau stats de 2 lignes. A partir de celui-ci je construit un graphique en courbes que je personnalise ensuite. Je me définis pour mon axe ordonnées une échelle avec mini et maxi.

Seul hic, c'est que suivant le tableuax ces mini/maxi ne sont jamais les mêmes.....

Existe-t il une possibilité par VBA de déterminer lui même ces deux valeurs à fin d'obtenir un graphique bien lisible entre ces deux valeurs?

Ex de tablaeu:

S 1 S 2 S 3 S 4 S 5
A 102,4 82,1 94,7 102,5 92,0
B 96,1 83,7 95,2 102,5 86,5

Un grand merci a celle ou celui qui me dépatouillera.
bonne journée 🙂
 
Bonjour le Forum, Anita,

Premièrement il faut savoir qu'il y a un bug dans excel. Par macro si tu mets les lignes :
.MinimumScaleIsAuto = True
.MaximumScaleIsAuto = True
sur True, ca ne marche pas, l'echelle automatique décone plein tube. Donc il faut les définir toi même !

Voici le code que j'utilsie pour mettre mes echelles à la bonne taille, sachant que mon graph comporte deux axes

Code:
Dim MinX As Double, MaxX As Double
Dim MinY As Double, MaxY As Double
Dim MinY1 As Double, MinX1 As Double
Dim FinX As Integer, Annee As Integer


FinX = Feuil1.Range('C7').End(xlToRight).Column
MaxX = Application.WorksheetFunction.Max(Feuil1.Range(Cells(8, 3), Cells(8, FinX)))
MinX = Application.WorksheetFunction.Min(Feuil1.Range(Cells(8, 3), Cells(8, FinX)))

MaxY = Application.WorksheetFunction.Max(Feuil1.Range(Cells(9, 3), Cells(9, FinX)))
MinY = Application.WorksheetFunction.Min(Feuil1.Range(Cells(9, 3), Cells(9, FinX)))

MaxX = MaxX + 0.5
MaxY = MaxY + 0.5
MinX1 = MinX
MinY1 = MinY
MinX = MinX - 0.5
MinY = MinY - 0.5
puis dans les propriété du graphqiue :
Code:
ActiveChart.Axes(xlValue).Select
    
    With ActiveChart.Axes(xlValue)
    .CrossesAt = CDec(Feuil1.Range('D5').Value)
    .MinimumScaleIsAuto = True
    .MaximumScaleIsAuto = True
    .MinimumScale = MinY
    .MaximumScale = MaxY
    
    If Feuil1.Range('K5').Value = 'OUI' Then
    .MajorTickMark = xlOutside
    .MinorTickMark = xlNone
    .TickLabelPosition = xlNextToAxis
    End If
    
    End With
    
ActiveChart.Axes(xlCategory).Select
    With ActiveChart.Axes(xlCategory)
      .CrossesAt = CDec(Feuil1.Range('C5').Value)
      .MinimumScaleIsAuto = True
      .MaximumScaleIsAuto = True
      .MinimumScale = MinX
      .MaximumScale = MaxX
    
    If Feuil1.Range('K5').Value = 'OUI' Then
    .MajorTickMark = xlOutside
    .MinorTickMark = xlNone
    .TickLabelPosition = xlNextToAxis
    End If
     
    End With
Voila en esperant que cela t'aide

++

Creepy
 
Creepy, J'ai un petit souscis d'application car trop peu familiarisé avec le VBA.
As tu un exemple de fait. Si oui ne le zip pas change juste l'extension xls en zip. Car je ne dispose pas de dézippeur. Si ce n'est pas possible envois le zippé je le déziperais chez un ami...

Mille merci encore 🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…