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 :

Données d'un graphique


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de thibane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2007
    Messages : 143
    Par défaut Données d'un graphique
    Rebonjour à tous.

    Voici mon deuxieme probleme.
    Situation : j'ai une feuille ou se cotoient une dizaine de graphiques.
    J'ai en l'occurrence une série de données sur laquelle vont se créer 2 graphiques.
    Voici le code de la création du graphique, un peu retouché :

    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
    'Création des graphiques barres
            Charts.Add
            ActiveChart.ChartType = xlColumnClustered
            ActiveChart.SetSourceData Source:=Sheets("Eq. Info" & t).Range("A1:G1,A5:G5"), _
                PlotBy:=xlRows
            ActiveChart.Location Where:=xlLocationAsObject, Name:="Eq. Info" & t
            With ActiveChart
                .HasTitle = True
                .ChartTitle.Characters.Text = "Jours passés sur le HP / Nb jours travaillés - Trimestre " & t
                .Axes(xlCategory, xlPrimary).HasTitle = False
                .Axes(xlValue, xlPrimary).HasTitle = False
                .Parent.Name = "barre_eqinfo1" & t
                .HasLegend = False
                .ApplyDataLabels Type:=xlDataLabelsShowValue, LegendKey:=False
                .ChartArea.Border.Weight = 2
                .ChartArea.Border.LineStyle = -1
                .ChartArea.Interior.ColorIndex = 36
                .PlotArea.Border.Weight = xlThin
                .PlotArea.Border.LineStyle = xlNone
                .PlotArea.Interior.ColorIndex = 36
                .PlotArea.Interior.PatternColorIndex = 1
                .PlotArea.Interior.Pattern = xlSolid
            End With
            With ActiveSheet.Shapes("barre_eqinfo1" & t)
                .Left = Range("A7").Left
                .Top = Range("A7").Top
            End With
    Le problème est qu'une fois mon graphique créé, il ne me prend pas du tout en données ce que j'ai demandé.
    Voilà ce que j'ai :



    Il me prend apparemment 3 séries n'importe comment.

    J'ai retourné le problème dans tous les sens et j'avoue que je commence à caler. Qqun a une idée?



    Bonne journée

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 262
    Par défaut
    Bonjour !

    Essaie avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1,A1:G1,A5:G5")
    en remplacement du texte rouge

  3. #3
    Membre confirmé Avatar de thibane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2007
    Messages : 143
    Par défaut
    Salut flo_flo.

    Alors j'obtiens la chose suivante :



    Ce qui est plus proche du résultat que le précédent mais pas encore net...
    Apparemment, il ne prend pas la série A1:G1, j'ai des chiffres à la place des lettres (et j'ai toujours des chiffres si je remplace les lettres par autre chose)

    De plus, il y a des trucs bizarres à l'intérieur du graphique : des zéros qui apparaissent et se chevauchent...

    C'est vraiment bizarre je n'ai jamais eu de problème avec les graphiques. Je me dis qu'il s'agit peutetre d'un trop plein de graphiques dans la même feuille non ? Il y en a 9. Enfin c'est bizarre parce que les deux qui posent problème sont les 2 deux premiers créés...

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 262
    Par défaut
    Tu as enregistré ton code à l'enregistreur de macros ? Ou bien écrit tout seul ?

    Tu peux nous joindre ton fichier si possible stp ? C'est plus pratique que des screenshots pour t'aider

  5. #5
    Membre confirmé Avatar de thibane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2007
    Messages : 143
    Par défaut
    Pas de problème, sauf que ça ne change pas fondamentalement du premier code que j'ai mis :

    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
     
    'Création des graphiques barres
            Charts.Add
            ActiveChart.ChartType = xlColumnClustered
            ActiveChart.SetSourceData Source:=Sheets("Eq. Info" & t).Range("A1,A1:G1,A5:G5"), _
                PlotBy:=xlRows
            ActiveChart.Location Where:=xlLocationAsObject, Name:="Eq. Info" & t
            With ActiveChart
                .HasTitle = True
                .ChartTitle.Characters.Text = "Jours passés sur le HP / Nb jours travaillés - Trimestre " & t
                .Axes(xlCategory, xlPrimary).HasTitle = False
                .Axes(xlValue, xlPrimary).HasTitle = False
                .Parent.Name = "barre_eqinfo1" & t
                .HasLegend = False
                .ApplyDataLabels Type:=xlDataLabelsShowValue, LegendKey:=False
                .ChartArea.Border.Weight = 2
                .ChartArea.Border.LineStyle = -1
                .ChartArea.Interior.ColorIndex = 36
                .PlotArea.Border.Weight = xlThin
                .PlotArea.Border.LineStyle = xlNone
                .PlotArea.Interior.ColorIndex = 36
                .PlotArea.Interior.PatternColorIndex = 1
                .PlotArea.Interior.Pattern = xlSolid
            End With
            With ActiveSheet.Shapes("barre_eqinfo1" & t)
                .Left = Range("A7").Left
                .Top = Range("A7").Top
            End With
     
            'Création des graphiques camembert
            Charts.Add
            ActiveChart.ChartType = xl3DPieExploded
            ActiveChart.SetSourceData Source:=Sheets("Eq. Info" & t).Range("A1:G1,A5:G5"), _
                PlotBy:=xlRows
            ActiveChart.Location Where:=xlLocationAsObject, Name:="Eq. Info" & t
            With ActiveChart
                .HasTitle = True
                .ChartTitle.Characters.Text = "Jours passés sur le HP / Nb jours travaillés - Trimestre " & t
                .HasLegend = True
                .Legend.Position = xlLegendPositionBottom
                .Parent.Name = "cam_eqinfo1" & t
                .ChartArea.Border.Weight = 2
                .ChartArea.Border.LineStyle = -1
                .ChartArea.Interior.ColorIndex = 38
                .PlotArea.Border.Weight = xlThin
                .PlotArea.Border.LineStyle = xlNone
                .PlotArea.Interior.ColorIndex = 38
                .PlotArea.Interior.PatternColorIndex = 1
                .PlotArea.Interior.Pattern = xlSolid
            End With
            ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowPercent, LegendKey:=False _
                , HasLeaderLines:=True
            With ActiveSheet.Shapes("cam_eqinfo1" & t)
                .Left = Range("G7").Left
                .Top = Range("G7").Top
            End With
    Donc là, initialement les deux graphes faisaisent références à la même plage de données mais là j'ai modifié la plage du premier graphe avec ce que tu m'as dis précédemment.

    La seule différence entre les deux graphes est que le premier est " à barre" et le second "en camembert".

    J'utilise la tactique de : " j'utilise l'enregistreur pour la base du graphique et après je touche à la main les paramètres que je veux changer". J'ai utilisé cette tactique pour tout le classeur (qui contient plusieurs feuilles avec plusieurs graphiques par feuille) et je n'ai pas eu de problème jusque là.
    Ce qui est bizarre, c'est que ce ne sont pas les derniers graphes à être générés. D'autres suivent derrière et eux n'ont aucun problème.

  6. #6
    Membre confirmé Avatar de thibane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2007
    Messages : 143
    Par défaut
    Salut à tous.

    Ayant trouvé la solution, je me réponds à moi-même...

    En fait le problème venait du fait que les données sources du graphique, au moment de sa création, n'étaient pas sous forme numérique, tout simplement.

    C'est-à dire que c'est un graphique qui est sensé être mis à jour en remplissant une certaine ligne de données. Sauf que la donnée source du graphique, en attendant qu'un utilisateur renseigne une certaine donnée, affichait du texte : "En attente". C'est ce "En attente" qu'il n'aimait pas.
    J'ai du en gros remplacer ce texte par du numérique et depuis, plus de soucis.

    Si qqun a une solution plus propre que mettre des chiffres bidon en attendant qu'ils soient mis à jour, je prends, sinon ça fonctionne comme ca.

    Bonne soirée à tous

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

Discussions similaires

  1. export base donnée pour représentation graphique des tables
    Par calitom dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 04/11/2006, 13h27
  2. [VBA-E]Données d'un graphique
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 71
    Dernier message: 21/07/2006, 15h39
  3. Saisie de données en mode graphique??
    Par matix83 dans le forum C
    Réponses: 5
    Dernier message: 15/04/2006, 10h09
  4. [VBA-E]Récupérer chemin du fichier de données d'un graphique
    Par pimouss76 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 31/03/2006, 14h41
  5. [C#] pilotage excel: définir plage de données d'un graphique
    Par cortex024 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 27/03/2006, 17h34

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