Problème Instrcutions code VBA - Erreur 438

Résolu
Kayna.86 Messages postés 42 Statut Membre -  
Kayna.86 Messages postés 42 Statut Membre -
Bonjour à tous,

Je souhaite ajuster l'échelle des ordonnées de mon graphique en fonction des données représentées pas le graphique.
Pour cela, j'ai calculé dans la colonne U et V les valeurs min et max respectivement de chaque séries de données (listé par ligne).
Je souhaiterais à l'aide d'une macro dans VBA, prendre en compte les valeurs max et min calculer pour définir les bornes de l'échelle Y de mon graph.

Voici le code que j'ai écrit:

Sub Graphconso_Scale_definition()
Dim Conso As Worksheet
Workbooks(1).Worksheets(4).Activate
With ActiveChart
.Axes(xlValue).MinimumScale = Range(Application.Addresse(Application.Match(Range("Series"), Range("Data"), 0), 21)).Value
.Axes(xlValue).MinimumScale = Range(Application.Addresse(Application.Match(Range("Series"), Range("Data"), 0), 22)).Value
End With
End Sub

Mon souci étant que la ligne . ".Axes(xlValue).MinimumScale = Range(Application.Addresse(Application.Match(Range("Series"), Range("Data"), 0), 21)).Value"

Génère une erreur de type "438: object does not support this property or method"

J'ai beau chercher, je n'arrive pas à résoudre ce problème.

Quelqu'un aurait-il une solution à mon problème? Je tiens à signaler que je suis complètement novice en matière de programme tion VBA. Il se peut donc que ce qui m'échappe soit évident..

4 réponses

  1. Kayna.86 Messages postés 42 Statut Membre 5
     
    Bonjour Eriiic!

    Merci infiniment: ça marche parfaitement! :-)

    Kayna
    3
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      ok, n'oublie pas de mettre en résolu.
      eric
      0
    2. Kayna.86 Messages postés 42 Statut Membre 5
       
      C'est fait!

      Kayna
      0
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    pour commencer .Addresse s'écrit sans e : .Address

    Et sans fichier joint pas grand monde ne pourra tester.
    Déposer le fichier xls (réduit au nécessaire et anonymisé) sur cjoint.com et coller ici le lien fourni.

    eric
    0
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim c As Range
        If Target = [Series] Then
            'rechercher ligne Data
            Set c = [Data].Columns(1).Find([Series].Value, LookIn:=xlValues, lookat:=xlWhole)
            If c Is Nothing Then MsgBox ("Donnée absente."): Exit Sub
            ' mini maxi
            ActiveSheet.ChartObjects("Graph_Conso").Activate
            With ActiveChart.Axes(xlValue)
                .MinimumScale = Range("U" & c.Row)
                .MaximumScale = Range("W" & c.Row)
            End With
        End If
        [Series].Select
    End Sub

    https://www.cjoint.com/?BKfjSyVlaKb

    eric
    0