IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Macro développé sous Excel 2000 qui ne marche plus sous 2007 [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Macro développé sous Excel 2000 qui ne marche plus sous 2007
    Bonjour,

    Je dispose d'un petit programme qui me permet d'afficher un graphe. Il a été développé sous Excel 2000 et depuis peu je suis passé en version 2007, et il ne marche plus. Lorsque je lance les calculs avec les macros j'ai l'erreur suivante qui s'affiche: Erreur d'exécution '-2147467259 (80004005)': la méthode 'ScaleType' de l'objet 'Axis' a échoué.
    Voici la macro:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    'Chart creation
        Charts.Add
            ActiveChart.Location where:=xlLocationAsNewSheet
            ActiveChart.ChartType = xlXYScatterLines
            ActiveChart.SetSourceData Source:=Sheets("PARAM").Range("AA" & 1 & ":AD" & n), PlotBy _
            :=xlColumns
     
            ActiveChart.SeriesCollection.NewSeries
            ActiveChart.SeriesCollection(4).Delete
     
                'Humidity curve
                ActiveChart.SeriesCollection(1).Name = "Humidity"
     
                'VHP Conc curve
                ActiveChart.SeriesCollection(2).Name = "VHP Conc."
     
                'Max allowable VHP curve
                ActiveChart.SeriesCollection(3).Name = "Max allowable VHP"
     
                'border
                ActiveChart.ChartArea.Border.Color = RGB(255, 255, 255)
                'backcolor
                ActiveChart.PlotArea.Interior.Color = RGB(255, 255, 255)
     
                'legend
                ActiveChart.Legend.Position = xlLegendPositionBottom
                ActiveChart.Legend.Border.Color = RGB(255, 255, 255)
     
     
            ActiveChart.SeriesCollection(1).AxisGroup = xlSecondary
            ActiveChart.SeriesCollection(1).MarkerStyle = None
            ActiveChart.SeriesCollection(1).Select
                With Selection.Border
                    .Weight = xlThin
                    .LineStyle = xlAutomatic
                    .Color = RGB(0, 0, 255)
                End With
     
            ActiveChart.SeriesCollection(2).MarkerStyle = None
            ActiveChart.SeriesCollection(2).Select
                With Selection.Border
                    .Weight = xlThin
                    .LineStyle = xlAutomatic
                    .Color = RGB(255, 0, 0)
                End With
     
            ActiveChart.SeriesCollection(3).MarkerStyle = None
            ActiveChart.SeriesCollection(3).Select
                With Selection.Border
                    .Weight = xlThin
                    .LineStyle = xlAutomatic
                    .Color = RGB(51, 153, 51)
                End With
     
            If Sheets("PARAM").CheckBox1.Value = True Then
                ActiveChart.SeriesCollection(1).MarkerStyle = xlMarkerStyleCircle
                ActiveChart.SeriesCollection(1).MarkerBackgroundColor = RGB(0, 0, 255)
                ActiveChart.SeriesCollection(1).MarkerSize = 4
                ActiveChart.SeriesCollection(2).MarkerStyle = xlMarkerStyleSquare
                ActiveChart.SeriesCollection(2).MarkerBackgroundColor = RGB(255, 0, 0)
                ActiveChart.SeriesCollection(2).MarkerSize = 4
                ActiveChart.SeriesCollection(3).MarkerStyle = xlMarkerStyleTriangle
                ActiveChart.SeriesCollection(3).MarkerBackgroundColor = RGB(51, 153, 51)
                ActiveChart.SeriesCollection(3).MarkerSize = 4
            Else: GoTo Y
            End If
     
     
    Y:      With ActiveChart
                    .HasTitle = True
                    .ChartTitle.Font.Bold = True
                    .ChartTitle.Font.Size = 12
                    .ChartTitle.Characters.Text = Sheets("PARAM").[L1] & Chr(13) & "Min. Chamber Temperature: " & Sheets("PARAM").[A22] & "°C"
                    .Axes(xlCategory, xlPrimary).HasTitle = True
                    .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Time (min)"
                    .Axes(xlCategory, xlPrimary).AxisTitle.Font.Size = 10
                    .Axes(xlCategory, xlPrimary).AxisTitle.Font.Bold = True
                        With .Axes(xlCategory)
                                .MinimumScale = 0
                                .MaximumScale = Sheets("PARAM").[A4] + Sheets("PARAM").[A8] + Sheets("PARAM").[A12] + Sheets("PARAM").[A16]
                                .MinorUnitIsAuto = True
                                .MajorUnitIsAuto = True
                                .Crosses = xlCustom
                                .CrossesAt = 0
                                .ReversePlotOrder = False
                                .ScaleType = xlLinear
                                .DisplayUnit = xlNone
                        End With
     
                    .Axes(xlValue, xlPrimary).HasTitle = True
                    .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "VHP Concentration (mg/L)"
                    .Axes(xlValue, xlPrimary).AxisTitle.Font.Size = 10
                    .Axes(xlValue, xlPrimary).AxisTitle.Font.Bold = True
     
                    .Axes(xlValue, xlSecondary).HasTitle = True
                    .Axes(xlValue, xlSecondary).AxisTitle.Characters.Text = "Relative Humidity (%)."
                    .Axes(xlValue, xlSecondary).AxisTitle.Orientation = 90
                    .Axes(xlValue, xlSecondary).AxisTitle.Font.Size = 10
                    .Axes(xlValue, xlSecondary).AxisTitle.Font.Bold = True
            End With
              If Sheets("PARAM").DispT.Value = False Then
              ActiveChart.ChartTitle.Characters.Text = Sheets("PARAM").[L1]
              End If
    Pourquoi cela marche t-il très bien sous 2000 et pas sous 2007? QQu'un peut il m'aider à corriger la macro.

    D'avance merci

  2. #2
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 121
    Points : 119
    Points
    119
    Par défaut
    a la place de xlLinear essaye xlScaleLinear
    c'est ce qui est écrit dans l'aide VBA maintenant j'en sais pas plus
    et je n'ai pas office 2007

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    J'ai déjà essayé xlScaleLinear, mais cela ne marche pas.
    Merci quand même.

  4. #4
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 121
    Points : 119
    Points
    119
    Par défaut
    sinon ton else goto Y ne sert à rien
    puisque quoi qu'il arrive compte tenu de la structure de ton code c'est le next step de l'exécution normal

    tu peux donc déjà l'enlever ainsi que l'étiquette associée mais ca ne résoudra pas ton problème
    Je ne suis pas suffisamment qualifié pour le reste

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci pour ta revue du code.
    Si qqu'un d'autre a une idée pour résoudre mon problème, je suis preneur....

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Bonjour,
    Sur quel ligne tu a l'erreur ?
    A+

  7. #7
    Expert éminent
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Points : 6 699
    Points
    6 699
    Par défaut
    Bonjour,

    Ton cas n'est pas isolé, vois dans l'explication avancée dans les post du 04-06 à 1:;00 PM si ça t'apportes quelque chose

    http://www.microsoft.com/communities...&cr=&sloc=&p=1

    cordialement,

    Didier

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    A LeForestier:
    L'erreur se situe vers la fin du code. La ligne exacte c'est

    .ScaleType = xlLinear

    Je viens de lire le topic anglais....c'est pas bien encourageant tout ça....
    Je ne suis quand même pas le seul à utiliser cette fonction...

  9. #9
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Bonjour tous,
    En regardant sur l'aide j'en viens a la même conclision que david_atx
    Et a la lecture du lien communiqué par Ormonth, semblerait bien que ce soit un bug d'excel.
    A-tu essayé en supprimant cette ligne, c'est peut-être la valeur par défaut.
    A+

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Résolu
    Bonjour tout le monde.
    Merci pour ton éclair de génie LeForestier.
    J'ai supprimé .ScaleType et .DysplayUnit et tout marche comme sur des roulettes

    Effectivement, ScaleLinear et probablement la valeur par défaut...

    Encore merci pour votre aide à tous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Fonction VBA qui ne fonctionne plus sous excel 2010
    Par Outinet dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/10/2012, 13h49
  2. [XL-2000] Remplir un champ texte d'une page internet avec une macro sous excel 2000
    Par salent9 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/05/2011, 21h40
  3. [XL-2007] Addin 2003 qui ne marche plus en 2007
    Par xRay13 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 05/10/2009, 14h48
  4. javascript:history.go qui ne marche pas sous IE
    Par fpouget dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 23/09/2005, 08h23
  5. protection dossier sous excel 2000
    Par grandnello dans le forum Excel
    Réponses: 1
    Dernier message: 03/08/2005, 21h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo