Mettre à jours les échelles des graphiques via une macro

Résolu
Bonjour,
J'ai fais une macro qui permet de mettre à jours les échelles de mes graphiques, mais j'ai un problème.
La mise à jour se fait :
- Lorsque le maxi est renseigné
- Lorsque le mini et le maxi sont renseignés
Mais elle ne se fait pas :
- Lorsque le mini uniquement est renseigné.

Comment faire ? :(

Voici ma macro :

ActiveSheet.ChartObjects("Graph1").Activate
ActiveChart.Axes(xlValue).Select
With ActiveChart.Axes(xlValue)
.MinimumScale = Range("Y12").Value
.MaximumScale = Range("Z12").Value
End With
If Range("Y12").Value = "" Then
ActiveSheet.ChartObjects("Graph1").Activate
ActiveChart.Axes(xlValue).MinimumScaleIsAuto = True
End If
If Range("Z12").Value = "" Then
ActiveSheet.ChartObjects("Graph1").Activate
ActiveChart.Axes(xlValue).MaximumScaleIsAuto = True
End If

3 réponses

  1. Bonjour

    Essaies comme ceci

    With ActiveSheet.ChartObjects("Graph1").Activate
    If Range("Y12").Value = "" Then
      ActiveChart.Axes(xlValue).MinimumScaleIsAuto = True
    else
      ActiveChart.Axes(xlValue).MinimumScale = Range("Y12").Value
    End If
    If Range("Z12").Value = "" Then
      ActiveChart.Axes(xlValue).MaximumScaleIsAuto = True
    else
      ActiveChart.Axes(xlValue).MaximumScale = Range("Z12").Value
    End If

    Cdlmnt
    1
    1. Oh merci, ça marche super bien ! :)

      J'ai plus qu'à l'adapter pour tous mes graphiques et ça sera super.

      Par contre, j'ai une autre question, un peu en décalé, mais :
      - Si je veux appliquer une mise à jour des échelles à la centaine de graphes que j'ai dans ma feuille de la même façon, je dois noter quoi pour tous les affecter ?
      (PS : Je veux juste modifier leurs ordonnées).
      0
      1. Hum, modifier les abscisse pardon
        0
    2. Ah non, c'est bon, j'ai trouvé, j'ai fait comme ceci :

      Dim Graphes As ChartObject

      For Each Graphes In ActiveWorkbook.ActiveSheet.ChartObjects
      With Graphes.Chart.Axes(xlCategory)
      If Range("U12").Value = "" Then
      .MinimumScaleIsAuto = True
      Else
      .MinimumScale = Range("U12").Value
      End If
      If Range("V12").Value = "" Then
      .MaximumScaleIsAuto = True
      Else
      .MaximumScale = Range("V12").Value
      End If
      End With
      Next
      0