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 :

Erreur propriété PlotBy sur graphique [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 116
    Points : 64
    Points
    64
    Par défaut Erreur propriété PlotBy sur graphique
    Bonjour,

    J'ai une macro qui me crée un graphique et je souhaite inserver absisse et série. Pour trouver comment faire, je l'ai fais manuellement avec enregisteur de macro et j'ai donc utiliser la propriété :

    Mais une erreur se produit arrivée à cette ligne: Dimension spécifiée non valide dans le type de graphique en cours

    Voici le code de ma création de fichier:

    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
    Sub faireGraphique(nomAppli, ligFin, colDeb, colFin, titre, emp1, emp2, style)
     
    Dim classeur As Workbook
    Dim objRange As Range
    Dim objChart As ChartObject
     
    Set classeur = Workbooks(nomAppli)
     
    With Sheets("Statistiques")
        Set a1 = .Range(.Cells(2, colDeb), .Cells(ligFin, colDeb + 1))
        Set a2 = .Range(.Cells(2, colFin), .Cells(ligFin, colFin))
        Set objRange = Union(a1, a2)
    End With
     
    Set objChart = Sheets("Graphiques").ChartObjects.Add(emp1, emp2, 320, 220)
    With objChart.Chart
        .ChartStyle = style
        .ChartType = xlLine
        .SetSourceData Source:=objRange
         .ApplyLayout (4)
         .PlotBy = xlColumns
         .SetElement (msoElementDataLabelRight)
         .SetElement (msoElementChartTitleAboveChart)
         .ChartTitle.Text = titre
    End With
    End Sub

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour,

    Ca ne provoque pas d'erreur ici. Peux-tu mettre le classeur - sans données confidentielles - en pièce jointe ?
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  3. #3
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 116
    Points : 64
    Points
    64
    Par défaut
    Ci-joint le classeur, j'ai mis exactement la façon dont se présente le tableau
    Fichiers attachés Fichiers attachés

  4. #4
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Dans la macro "workbook_open", remplace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With Application.Sheets("Statistiques")
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With Sheets("Statistiques")
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  5. #5
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 116
    Points : 64
    Points
    64
    Par défaut
    Merci pour l'info c'est vrai que c'est mieux, ça ne m'aide pas trop pour mon soucis de graphique par contre

  6. #6
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Ton souci de graphique, c'était un plantage sur la ligne :

    Tu n'as plus cette erreur. Qu'est-ce que tu veux de plus. Si tu as un autre problème, expose-le; c'est le moins, non ?
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  7. #7
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 116
    Points : 64
    Points
    64
    Par défaut
    Si je l'ai toujours

  8. #8
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bon alors, c'est que je n'ai pas fait les bonnes manips. Une fois que le classeur est ouvert, qu'est-ce qu'il faut faire pour provoquer cette erreur ?
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  9. #9
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 116
    Points : 64
    Points
    64
    Par défaut
    Il faut sélectionner une valeur dans la liste déroulante et cliquer su l'image en dessous de la liste déroulante, c'est ce qui lance la création des graphiques

  10. #10
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    C'est ce que j'avais fait; par contre, je passe sur la séquence "graphique en aires à cause du test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If colDeb = colFin - 4 Then
    Si je ne tiens pas compte de ce test, je n'ai pas d'erreur. Comment faut-il faire pour avoir cette égalité ?
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  11. #11
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 116
    Points : 64
    Points
    64
    Par défaut
    On a cette égalité au moment de la création du 3ème graphique, le graphique des temps moyen.

    Car j'ai besoin davoir la courbe du temps moyen mais également une droite correpondant au temps de gamme.

    Tu dois forcément avoir cette égalité à un moment donné

  12. #12
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    J'ai besoin de cette égalité, sinon je ne passe pas sur la séquence de code qui plante. Il n'y a pas de "graphique des temps moyens" dans la liste. Explique-toi précisément, car tu abuses de mon temps.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  13. #13
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 116
    Points : 64
    Points
    64
    Par défaut
    Lorsque tu cliques sur l'image pour la création des graphiques, la macro va créer 4 graphiques correspondant aux informations présentes dans le tableau de la feuille "Statistiques".

    Par exemple si tu sélectionne "Attachement" dans la liste déroulante, une boucle tourne pour faire les 4 graphiques:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 0 To 3
            Call faireGraphique(nomAppli, lig, col, col + i + 2, titres(i), emplacements1(i), emplacements2(i), style(i))
        Next i
    Donc l'égalité
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If colDeb = colFin - 4 Then
    est vrai lorsque i = 2

  14. #14
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Effectivement, ça plante avec Excel 2007. Je testais avec Excel 2013 et je n'avais pas l'erreur. Je te trouve un contournement.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  15. #15
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 116
    Points : 64
    Points
    64
    Par défaut
    Merci pour ton aide et désolée pour le temps que je t'ai pris

  16. #16
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Modifie ton code comme ceci :

    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
        If colDeb = colFin - 4 Then
            .ChartType = xlLine
            .SetSourceData Source:=a1
            .SeriesCollection.NewSeries
            .SeriesCollection(2).Name = a2(1).Value
            .SeriesCollection(2).Values = a2(2).Resize(a2.Rows.Count - 1).Value
            .ApplyLayout (4)
            '.PlotBy = xlColumns
            .SetElement (msoElementDataLabelRight)
            .SetElement (msoElementChartTitleAboveChart)
            .ChartTitle.Text = titre
        Else
            .ChartType = xlArea
            .SetSourceData Source:=objRange
            .ApplyLayout (7)
            .ChartTitle.Text = titre
            .Legend.Delete
            .SetElement (msoElementDataLabelShow)
        End If
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  17. #17
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Si tu enlèves la ligne en question?
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  18. #18
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Ca fonctionne, Mercatog, mais ça ne devrait pas planter. Excel 2007 est vraiment, comme dirait les anglais "a pain in the ass", question graphique.

    nanousik :

    Merci pour ton aide et désolée pour le temps que je t'ai pris
    Désolé moi-même pour la remarque, mais je ne voyais pas le problème avec Excel 2013. Et le pire, c'est que je plante sur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .SetElement (msoElementDataLabelShow)
    c'est pourquoi le ne bouclais pas sur les 4 graphiques. J'ai maintenant ce problème à régler...
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

  19. #19
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 116
    Points : 64
    Points
    64
    Par défaut
    Merci ça tourne parfaitement de mon côté

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

Discussions similaires

  1. Réponses: 16
    Dernier message: 14/06/2022, 17h11
  2. Erreurs aléatoires sur graphique à bulles
    Par RGShoop dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/06/2008, 16h29
  3. barre d'erreur sur graphique excel
    Par fmris dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/10/2006, 14h41
  4. Erreur Pilote ODBC sur pages ASP
    Par zouritte dans le forum ASP
    Réponses: 2
    Dernier message: 12/12/2004, 13h42
  5. Erreur ORA-01036 sur un XMLGRAM
    Par sch dans le forum XMLRAD
    Réponses: 5
    Dernier message: 07/09/2004, 14h56

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