Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Automatisation graphique et export

  • Initiateur de la discussion Initiateur de la discussion cocro
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

cocro

XLDnaute Junior
Bonjour,
je dois réaliser plusieurs graphiques communaux qui devront être intégrés dans un document infographié.
Ce sont 4 séries d'histogramme pour 120 communes qui sont ainsi à créer. Une automatisation s'imposerait mais je ne sais comment m'y prendre 😞

je joins en exemple un extrait du tableau de données et graphique attendu.
De mon graphique, j'en ai fait un modèle pour le reproduire aisément, j'ai adapté une macro pour faire un export image de mon graphique ...

VB:
Sub GrapheEnImage()
Dim MyChart As Chart
Set MyChart = ActiveSheet.ChartObjects(1).Chart
MyChart.Export Filename:="E:\_travail_encours\monographie_2020\graph1_commune.png" ', filtername:="PNG"
End Sub

.... j'envisage de faire ce labeur manuellement à défaut de compétences autres.
Je vais copier les trois seuls lignes communales de ma base globale dans la feuille qui génère le graph puis exporter du nom de la commune traitée

A moins que vous puissiez m'apporter une solution pour gagner du temps ?
Merci pour votre appui

Corinne
 

Pièces jointes

  • graphique_en_serie.jpg
    38.4 KB · Affichages: 59
J'ai beau faire tourner et retourner la macro en pas à pas pour visualiser chaque graphique, je ne vois rien d'anormal, tout semble correct, les graphiques défilent bien par rangée de 3 zones et les étiquettes sont bien présentent à chaque fois, ou alors j'ai mal compris votre problème.
 
Incompréhensible en effet ... car de mon coté, j'ai beau faire tourner la macro et à chaque fois, les étiquettes disparaissent
je définis mon graphique, je lance la macro et une fois terminée, je vois la dernière commune avec les étiquettes. ce sont les deux seuls graphiques qui se voient affublés d'étiquettes.

j'ai enregistré de nouveau mon fichier avec extension xlsm. Même résultat
 

Pièces jointes

  • 99000.png
    7.5 KB · Affichages: 12
  • CC-PC.png
    7.4 KB · Affichages: 12
  • cc.png
    8.7 KB · Affichages: 13
  • tableau_graphique2_help.xlsm
    tableau_graphique2_help.xlsm
    54.7 KB · Affichages: 3
J'ai mis un point d'arrêt sur la ligne "Doevents", et je fais tourner la macro et tout est normal.
Faites de-même, et dites-moi à partir de quelle valeur de "i", le problème se présente.
Chez-moi tout est normal, la preuve en vidéo.

 
j'ai mis en commentaire la ligne ' DoEvents car point arrêt en F9 stoppe la macro.
je ne sais pas faire de vidéo comme vous pour vous montrer qua les graphiques de prennent pas l'étiquette .... seulement le dernier de la série
 
"le point arrêt en F9 stoppe la macro." c'est le but recherché et pour continuer, faites F5 à chaque arrêt sur la ligne, ainsi vous verrez tous les graphiques défiler.
Par contre, mettez en commentaire la ligne "
MyChart.Export Filename:="E:\_travai_encours\graphique1\" & commune & ".png", pour ne pas enregistrer à chaque passage
"
 
Fait selon vos directives.
voici copie des deux images qui s'enchainent, même macro chez vous et chez moi et deux résultats différents
 

Pièces jointes

  • etat_initial.jpg
    178.1 KB · Affichages: 13
  • etat_suivant.jpg
    170.2 KB · Affichages: 13
une piste ... car c'est certainement lié à mon pc

j'ai modifié mon graph en barre horizontal.
lancé la macro, tjs bloqué sur "DoEvents".
F5 pour faire le second graphique ... me renvoie l'histogramme !

j'ai copié les données dans un nouveau fichier, recréé le graphique et appliqué la macro
même résultat.
 
F5 pour faire le second graphique ... me renvoie l'histogramme ! C'est normal, si vous changez de graphique il faut aussi le changer dans la macro

remplacez la ligne
ActiveChart.ChartType = xlColumnClustered

par celle-ci
ActiveChart.ChartType = xlBarClustered
 
Mais Oui bien sur, pas vigilante sur ce coup là
Bon, nouvelle tentative. Résultats très surprenant :
étiquettes OK pour comm1, 2, 5 ,6, 7, 8, 9 et 10
rien pour les autres
j'ai beau regardé les lignes, je ne vois pas ce qui peut influencer cela
 
Recopié ce code (code avec l'ajout forcé des étiquettes)
VB:
Sub Graphique2011()
    Dim DerLig As Long, i As Long
    DerLig = Range("B" & Rows.Count).End(xlUp).Row
'générer graphique par commune avec 3 zones à metre en scène
'66 communes enquêtées en 2011
    For i = 3 To DerLig - 2 Step 3
        commune = Cells(i, "A")
        ActiveSheet.ChartObjects(1).Activate
        Set MyChart = ActiveSheet.ChartObjects(1).Chart
        ActiveChart.SetSourceData Source:=Range("Feuil2!$C$1:$I$2,Feuil2!$C" & i & ":$I" & i + 2)
        ActiveChart.ChartType = xlColumnClustered
        For j = i To 3
            ActiveChart.SeriesCollection(j).ApplyDataLabels
        Next j
        MyChart.Export Filename:="E:\__travail_encours\commerce\graphique2\" & commune & ".png"
        
        DoEvents 'attendre que les opérations précédentes soient terminées avant de passer à la suivante
    Next i
End Sub
 
Merci, aussitôt copié et aussitôt testé.
Stupéfiant, le comportement attendu n'est pas à l'arrivée.

seuls les graphiques 1/2/4 et 11 ont des étiquettes. 😞
Aucune logique au vue des lignes prises en compte.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…