Macro création de graphiques

lulu49

XLDnaute Nouveau
Bonjour à tous.
Suite à des recherches et discussions sur le forum j'ai réussi à réaliser un macro qui crée automatiquement des graphiques. Cependant j'ai quelques beugs...

1- je n'arrive pas à mettre le titre de l'axe des X (alors que le titre des Y fonctionne)
2- je ne peux pas enregistrer mon doc une fois que j'ai lancé la macro et que mes graphiques on été créés (si je supprime les graphs je peux de nouveau enregistrer)
3- la macro me fait apparaitre deux autres séries (non programmées) dans la légénde des graphiques (alors qu'il n'y a aucune valeur).

Merci d'avance pour votre aide.

Lulu
 

Pièces jointes

  • LS_PROFILS_V4.zip
    30.8 KB · Affichages: 84

lulu49

XLDnaute Nouveau
Re : Macro création de graphiques

Je comprens pas il n'y a pas d'automatisme. Si vous lancez pas la macro ça ne plante pas. Il suffit de l'ouvrir en mode création???
Ci-joint la maco en .txt
 

Pièces jointes

  • CreerGraphique.zip
    868 bytes · Affichages: 79

ngogoisidore

XLDnaute Occasionnel
Re : Macro création de graphiques

Bonjour Lulu49, Jean-Pierre et Kjin,

Aprés avoir lu les premières réponses, je n'ai pas osé ouvrir le fichier .xls, donc, je ne me suis basé que sur la procédure envoyée en format texte.

En intervertissant certaines lignes et en rajoutant un ou deux HasTitle = true, le code suivant marche sur mon PC :

Code:
Sub CreerGraphique()
'
' CreerGraphique Macro
'
    Dim MonGraph As Chart
    Dim L, LDeb, LFin, Precedent, Position
    
    Position = 10 ' position du 1ier graphe
    
    Dim NomFeuille As String
    NomFeuille = "Validation profils en long"
    
    Worksheets(NomFeuille).Activate
    Worksheets(NomFeuille).ChartObjects.Delete ' supprimer tous les graphes existants
    
    L = 2
    While Cells(L, 2) <> ""
        'reperer début fin plage
        Precedent = Cells(L, 2)
        LDeb = L
        While Cells(L, 2) = Precedent
            L = L + 1
        Wend
        LFin = L - 1
        '
        Set Mongraphe = ActiveSheet.ChartObjects.Add(Left:=400, Top:=200, Width:=400, Height:=300)
        Mongraphe.Name = "G" & Precedent
        
        With Mongraphe.Chart
            .ChartType = xlLineMarkers
            
            .SeriesCollection.NewSeries
            .SeriesCollection(1).XValues = Worksheets(NomFeuille).Range("E" & LDeb & ":E" & LFin)
            
            .SeriesCollection(1).Values = Worksheets(NomFeuille).Range("F" & LDeb & ":F" & LFin)
            .SeriesCollection(1).Name = "=""Substrat"""
            .SeriesCollection(1).MarkerStyle = -4142
            
            .SeriesCollection.NewSeries
            .SeriesCollection(2).Values = Worksheets(NomFeuille).Range("G" & LDeb & ":G" & LFin)
            .SeriesCollection(2).Name = "=""Ligne d'eau"""
            .SeriesCollection(2).MarkerStyle = -4142
            
            .Axes(xlValue).HasMajorGridlines = True
            .Axes(xlValue).HasMinorGridlines = True
            .Axes(xlCategory).AxisBetweenCategories = False
            
            .Axes(xlCategory, xlPrimary).HasTitle = True
            .Axes(xlCategory, xlPrimary).AxisTitle.Text = "Distances cumulées" 'titre X
            .Axes(xlValue, xlPrimary).HasTitle = True
            .Axes(xlValue, xlPrimary).AxisTitle.Text = "Dénivellés en centimètres" 'titre Y
            
            .HasTitle = True
            .ChartTitle.Text = "Profil en long session " & Precedent
        End With

        p = ActiveSheet.ChartObjects.Count
        
        With Worksheets(NomFeuille).ChartObjects(p)
            .Left = 700
            .Top = Position
            Position = Position + .Height + 10
        End With
    Wend
End Sub

@+
 
Dernière édition:

lulu49

XLDnaute Nouveau
Re : Macro création de graphiques

Bonjour à tous et merci pour votre aide.

ngogoisidore j'ai repri ta procédure et je suis confronté au même message d'erreur...
Pour info je suis sous 2007.

Je vous ai mis en piece jointe le message d'erreur de excel et le fichier excel sans les macro (en esperant que ça ne plante pas).

Je comprends vraiment pas le pb...

Merci d'avance.
 

Pièces jointes

  • ImprEcran.zip
    4.5 KB · Affichages: 67
  • LS_PROFILS_V5.zip
    27.9 KB · Affichages: 77

ngogoisidore

XLDnaute Occasionnel
Re : Macro création de graphiques

Bonjour Lulu49,

Ca va m'être difficile de répondre, car :

  • j'ai récupéré ton fichier,
  • je l'ai scanné avec mon antivirus : pas de problèmes,
  • je l'ai ouvert : pas de problèmes,
  • j'ai effacé le seul graphe que se trouvait dans la seule feuille existante ("Validation profils en long"),
  • puis, j'ai copié mon bout de code et l'ai exécuté sans problèmes (deux graphes sont apparus),
  • puis, j'ai sauvé le fichier sans problèmes,
  • puis, je l'ai fermé et réouvert : sans problèmes

Donc, je n'ai pas reproduit ton erreur ...

J'ai néanmoins remarqué qu'il y avait 8 objets workbook dans ton explorateur de projet vba et je ne crois pas que cela soit normal. A moins que cela soit une fonctionnalité d'Excel 2007, car je connais pas cette version.

Je te conseille, si c'est possible, d'ouvrir un nouveau classeur, de recopier tes données et tes macros manuellement dedans (copiés/collés) et ensuite de sauver, puis d'utiliser ce nouveau document.
Une autre solution, qui m'a permi de faire disparaitre les objets workbook multiples : j'ai sauvé sous le format Excel 95 (sous un autre nom), réouvert le classeur, puis re-sauvé sous format Excel 2003 (c'est ma version d'Excel).

En espérant que cela puisse t'aider à résoudre ton problème.

@+
 

lulu49

XLDnaute Nouveau
Re : Macro création de graphiques

ok ça marche, merci pour tes conseils ngogoisidore.

Juste une petite question : j'au deux séries sans valeur (qui ne sont mentionnées nulle part dans la macro) qui apparaissent dans la légende de mes graphs , toi aussi?

A+
Lulu
 

ngogoisidore

XLDnaute Occasionnel
Re : Macro création de graphiques

Non, je n'ai pas non plus ce problème ...
Je ne vois que les séries définies dans la macro ...

Désolé ...

Mais re-créant ton fichier (comme indiqué dans mon post précédent), es tu toujours incapable de sauver le fichier aprés l'execution de la macro ?

@+
 

lulu49

XLDnaute Nouveau
Re : Macro création de graphiques

Bon alors j'ai réussi à débeuguer le truc en enregistrant au format "Feuille microsoft excel prenant en charge les macros" et ça marche nickel.
Pour les séries en trop j'ai demandé à la macro de me les "delete" et nickel.

Voila mission acomplie avec succès mais pas sans mal.
Merci beaucoup ngogoisidore.
@+
 

rayan76

XLDnaute Nouveau
Re : Macro création de graphiques

Bonjour,

Je suis stagiaire dans une entreprise qui m’a demandé d’automatiser un graphique sur plusieurs feuilles, en faisant référence à un exemplaire d’un graphique déjà réalisé en interne, donc pour créer ma macro d’automatisation de ce graphique sur 6 feuilles suivantes dans un même classeur « DG » « GEM » « EMA » « SAFA » « GR » « ADD » avec des données différentes. J’ai copié le modèle de graphique qui s’appelle « graphiq » et je l’ai collé sur la feuille » DG » et j’ai changé les sources des données, en prenant les données du tableau de la feuille « DG »
Le code de mon fichier Excel c’est 280308
Base de travail Windows XP 2002

Le code de macro généré c’est :

Sub Macro1GRAPHIQUE()
'
'
Sheets("Graphiq").Select
ActiveChart.ChartArea.Copy
Sheets("DG").Select
Range("B60").Select
ActiveSheet.Paste
ActiveSheet.ChartObjects("Graphique 10").Activate
ActiveChart.PlotArea.Select
End Sub


Mon souhait c’est s’automatiser cette macro sur les autres feuilles de même classeurs »GEM » « EMA « « SAFA » « GR » « ADD » qui contiennent les mêmes format des tableaux avec les mêmes dimensions ,mais avec des données des chiffres différentes .
Je vous remercie d’avance.

Rayan
 

Discussions similaires

Réponses
6
Affichages
384

Statistiques des forums

Discussions
312 756
Messages
2 091 759
Membres
105 062
dernier inscrit
Ret78