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 :

Problème nom de graphique, incompatibilité Excel 2007 et 2003 [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 5
    Par défaut Problème nom de graphique, incompatibilité Excel 2007 et 2003
    Bonjour à tous,

    J'ai actuellement un problème pour renommer un graphique sous Excel 2003 alors que tout fonctionnait très bien auparavant sous excel 2007.

    L'erreur affiche le message suivant:"Impossible de définir la propriété HasTitle de la classe Chart"

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With Charts("Graphique")
    Charts("Graphique Réseau").HasTitle = True
    Charts("Graphique Réseau").ChartTitle.Text = "Réseau entier" & "-" & .Cells(1, 18).Value
    End With
    L'erreur se trouve donc à la seconde ligne

    J'espère que vous pourrez m'aider, en vous remerçiant par avance,

    x0ran

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Citation Envoyé par x0ran Voir le message
    alors que tout fonctionnait très bien auparavant sous excel 2007.
    Étonnant que ce code fonctionnait sous 2007 parce que tu fais référence à 2 graphiques dans ton code
    With Charts("Graphique") et à la ligne suivante Charts("Graphique Réseau")...

    En écrivant With Charts("Graphique") je suppose que le graphique a été créé sur une nouvelle feuille et non inséré comme objet sur la feuille contenant les données.

    Essaie comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With Charts("Graphique")
        .HasTitle = True
        .ChartTitle.Text = "Réseau entier" & "-" & Sheets("NomFeuille").Cells(1, 18).Value '<-- NomFeuille à adapter
    End With
    Si par contre le graphique est inséré comme un objet sur la feuille, la syntaxe est différente.

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 5
    Par défaut
    Merci beaucoup de m'avoir apporté ton aide,
    Effectivement j'avais fait une erreur en copiant mon code

    Je viens de retenter avec ta méthode, mais j'ai la même erreur à savoir "Impossible de définir la propriété HasTitle de la classe Chart"

    Y a t'il d'autres olutions??

    Merci

    En réalité je remplis le même graphique automatiquement avec des données présentes dans une feuille, et je veux importer le titre de ma feuille pour en faire le titre du graphique en question, mais bien que tout fonctionne très bien sous excel 2007, rien à faire sous excel 2003. J'ai essayé avec ta méthode (en corrigeant l'erreur sur le nom du graphique), mais là toujours rien...

  4. #4
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Je viens de tester le petit bout de code sous 2003 et 2007 et cela fonctionne correctement dans les deux cas.

    Ton graphique se trouve bien sur une feuille séparée ?

  5. #5
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 5
    Par défaut
    OUi mon graphique se trouve bien dans une autre feuille de type Chart appelée Graphique.

    Je ne comprends pas, j'ai repris ton code dans un nouveau classeur pour voir si le problème ne venais pas d'une ligne de code précédente, mais j'ai toujours la même erreur...

    As tu essayé sous excel 2003? Parce que tout marche bien sous 2007

    Merci

    Voici le code appelant la modification du graphique "Graphique"
    J'espère que vous pourrez m'aider.
    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
    With Sheets("Maison")
    s1 = "Individuel + solaire"
    s2 = "Individuel"
    s3 = "Décentralisé"
    s4 = "Centralisé"
    End With
    k = 3
    Nbes1 = 0
    Nbes2 = 0
    Nbes3 = 0
    Nbes4 = 0
    Sheets("Maison").Activate
    For k = 3 To Cells(1, 1).Value + 2
    If Cells(k, 2).Value = s1 Then
    Nbes1 = Nbes1 + 1
    ElseIf Cells(k, 2).Value = s2 Then
    Nbes2 = Nbes2 + 1
    ElseIf Cells(k, 2).Value = s3 Then
    Nbes3 = Nbes3 + 1
    ElseIf Cells(k, 2).Value = s4 Then
    Nbes4 = Nbes4 + 1
    End If
    Next
    Charts("Graphique").Activate
    With Charts("Graphique")
        Charts("Graphique").HasTitle = True
        .ChartTitle.Text = "Réseau entier" & "-" & Sheets("Maison").Cells(1, 18).Value '<-- NomFeuille à adapter
    End With
    'Charts("Graphique").HasTitle = True
    'Charts("Graphique").ChartTitle.Text = .Cells(3, 1).Value & "-" & .Cells(1, 18).Value
    With Sheets("Maison")
    If Nbes1 <> 0 Then
    Charts("Graphique").SeriesCollection.NewSeries
    Charts("Graphique").SeriesCollection(1).Name = s1
    Charts("Graphique").SeriesCollection(1).Values = .Range("R3:R" & Nbes1 + 2)
    Charts("Graphique").SeriesCollection(1).XValues = .Range("C3:C" & .Cells(1, 1).Value + 2)
    End If
    If Nbes2 <> 0 Then
    Charts("Graphique").SeriesCollection.NewSeries
    Charts("Graphique").SeriesCollection(2).Name = s2
      Charts("Graphique").SeriesCollection(2).Values = .Range(Cells(Nbes1 + 3, 18), Cells(Nbes1 + Nbes2 + 2, 18))
    Charts("Graphique").SeriesCollection(2).XValues = .Range("C3:C" & .Cells(1, 1).Value + 2)
    End If
    If Nbes3 <> 0 Then
    Charts("Graphique").SeriesCollection.NewSeries
    Charts("Graphique").SeriesCollection(3).Name = s3
    Charts("Graphique").SeriesCollection(3).Values = .Range(Cells(Nbes1 + Nbes2 + 3, 18), Cells(Nbes1 + Nbes2 + Nbes3 + 2, 18))
    Charts("Graphique").SeriesCollection(3).XValues = .Range("C3:C" & .Cells(1, 1).Value + 2)
    End If
    If Nbes4 <> 0 Then
    Charts("Graphique").SeriesCollection.NewSeries
    Charts("Graphique").SeriesCollection(4).Name = s4
    Charts("Graphique").SeriesCollection(4).Values = .Range(Cells(Nbes1 + Nbes2 + Nbes3 + 3, 18), Cells(Nbes1 + Nbes2 + Nbes3 + Nbes4 + 3, 18))
    Charts("Graphique").SeriesCollection(4).XValues = .Range("C3:C" & .Cells(1, 1).Value + 2)
    End If
    End With
    L'erreur est à la ligne du HasTitle=true

  6. #6
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Citation Envoyé par x0ran Voir le message
    As tu essayé sous excel 2003? Parce que tout marche bien sous 2007
    Citation Envoyé par fring Voir le message
    Je viens de tester le petit bout de code sous 2003 et 2007 et cela fonctionne correctement dans les deux cas.
    Il y a une différence entre ton code et celui que je t'ai proposé
    Mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With Charts("Graphique")
        .HasTitle = True
        .ChartTitle.Text = "Réseau entier" & "-" & Sheets("Maison").Cells(1, 18).Value '<-- NomFeuille à adapter
    End With
    Ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With Charts("Graphique")
        Charts("Graphique").HasTitle = True
        .ChartTitle.Text = "Réseau entier" & "-" & Sheets("Maison").Cells(1, 18).Value '<-- NomFeuille à adapter
    End With
    Je n'ai pas 2003 sous la main mais c'est peut être cette ligne qui coince
    Charts("Graphique").HasTitle = True

    Sinon envoie moi ton fichier (en enlevant les données confidentielles) que j'y jette un oeil

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

Discussions similaires

  1. [E-07] Macro création d'un graphique sous Excel 2007
    Par JMPS.VBA dans le forum Contribuez
    Réponses: 1
    Dernier message: 19/11/2014, 18h24
  2. Réponses: 2
    Dernier message: 29/07/2011, 13h55
  3. Incompatibilité Excel 2007-2000
    Par lucazzo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/06/2008, 16h59
  4. Probléme de compatibilté macro vba excel 2007 vers 2002
    Par cedric59dk dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/03/2008, 10h55
  5. Barre d'erreur et graphiques sur Excel 2007
    Par Killerboy dans le forum Excel
    Réponses: 4
    Dernier message: 08/08/2007, 16h23

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