Problème Instrcutions code VBA - Erreur 438

Résolu/Fermé
Kayna.86 Messages postés 42 Date d'inscription mercredi 31 octobre 2012 Statut Membre Dernière intervention 17 avril 2013 - 31 oct. 2012 à 17:29
Kayna.86 Messages postés 42 Date d'inscription mercredi 31 octobre 2012 Statut Membre Dernière intervention 17 avril 2013 - 5 nov. 2012 à 20:49
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

Kayna.86 Messages postés 42 Date d'inscription mercredi 31 octobre 2012 Statut Membre Dernière intervention 17 avril 2013 5
5 nov. 2012 à 16:13
Bonjour Eriiic!


Merci infiniment: ça marche parfaitement! :-)


Kayna
3
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 209
5 nov. 2012 à 19:04
ok, n'oublie pas de mettre en résolu.
eric
0
Kayna.86 Messages postés 42 Date d'inscription mercredi 31 octobre 2012 Statut Membre Dernière intervention 17 avril 2013 5
5 nov. 2012 à 20:49
C'est fait!

Kayna
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 209
31 oct. 2012 à 17:40
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
Kayna.86 Messages postés 42 Date d'inscription mercredi 31 octobre 2012 Statut Membre Dernière intervention 17 avril 2013 5
5 nov. 2012 à 00:24
Bonjour Eric,


Voici le fichier sur le quel je travaille.


https://www.cjoint.com/?0KfatFjpdxw


Merci d'avance!


Kayna
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 209
5 nov. 2012 à 09:45
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