Enregistrer un graphique en jpg

tomover

XLDnaute Nouveau
Bonjour,

J'essai de débuger un script qui génère un bug, mais sans succès.

j'ai 3 onglets avec un graphique sur chacun d'eux.

J'ai créer un bouton pour lancer une fonction qui devrait enregistrer les graphiques au format jpg dans un dossier

Code:
Sub Bouton1_Cliquer()
'sélection de la feuille
Sheets("GRAPH 1").Select
'répertoire où enregistrer image jpg
ChDir "C:\IMAGES"
'création de ton image jpg
ActiveChart.Export Filename:="graph_1.jpg", FilterName:="JPG"

'sélection de la feuille
Sheets("GRAPH 2").Select
'répertoire où enregistrer image jpg
ChDir "C:\IMAGES"
'création de ton image jpg
ActiveChart.Export Filename:="graph_2.jpg", FilterName:="JPG"

'sélection de la feuille
Sheets("GRAPH 3").Select
'répertoire où enregistrer image jpg
ChDir "C:\IMAGES"
'création de image jpg
ActiveChart.Export Filename:="graph_3.jpg", FilterName:="JPG"

End Sub
J'obtiens le message d'erreur suivant : variable objet ou variable de bloc with non définie
le ligne surlignée : ActiveChart.Export Filename:="graph_1.jpg", FilterName:="JPG"

Savez vous quelle erreur a été commise dans le code ?
Merci
 
Dernière édition:

tomover

XLDnaute Nouveau
Re : Enregistrer un graphique en jpg

Je pense avoir trouvé une partie de la solution.
Le bug disparaît quand je prend soin de cliquer sur chaque graphique avant de lancer la macro ! !

Donc il faudrait rendre actif chaque graphique avant de chercher à le transformer en jpg.

Savez-vous comment on doit procéder ?
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Enregistrer un graphique en jpg

Bonjour,

rarement utile les selections en vba, essaye peut être ceci non testé sous 2010...

Code:
Sheets("GRAPH 1").ChartObjects(1).Chart.Export Filename:="graph_1.jpg", FilterName:="JPG"

bonne soirée
@+
 

tomover

XLDnaute Nouveau
Re : Enregistrer un graphique en jpg

Cool j'ai trouvé !
J'ai rajouté une ligne qui permet de rendre actif le graphique avant l'enregistrement en jpg et contourner ainsi le problème !
ActiveSheet.ChartObjects("Graphique 1").Activate

Maintenant j'aimerai donner une dimension aux graphiques... en 300dpi serait le top ;)
Je me replonge dans mes recherches... mais n'hésitez pas à me donner un coup de pouce :eek:

Code:
Sub Bouton1_Cliquer()
'sélection de la feuille
Sheets("GRAPH 1").Select
'répertoire où enregistrer image jpg
ChDir "C:\IMAGES"
'rend actif le graphique
ActiveSheet.ChartObjects("Graphique 1").Activate
'création de ton image jpg
ActiveChart.Export Filename:="C:\IMAGES\graph_1.jpg", FilterName:="JPG"

'sélection de la feuille
Sheets("GRAPH 2").Select
'répertoire où enregistrer image jpg
ChDir "C:\IMAGES"
'rend actif le graphique
ActiveSheet.ChartObjects("Graphique 2").Activate
'création de ton image jpg
ActiveChart.Export Filename:="graph_2.jpg", FilterName:="JPG"

'sélection de la feuille
Sheets("GRAPH 3").Select
'répertoire où enregistrer image jpg
ChDir "C:\IMAGES"
'rend actif le graphique
ActiveSheet.ChartObjects("Graphique 3").Activate
'création de ton image jpg
ActiveChart.Export Filename:="graph_3.jpg", FilterName:="JPG"

End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 389
Messages
2 087 935
Membres
103 678
dernier inscrit
bibitm