4/5 (22 avis)
Snippet vu 28 849 fois - Téléchargée 22 fois
Sub ExportGraph() ' Déclaration des variables Dim Sheets As Variant Dim NomSheet As String Dim Graph As Variant Dim NomGraph As String Dim Fich As String Dim i As Byte ' Boucle parcourant les feuilles For Each Sheets In ActiveWorkbook.Sheets NomSheet = Sheets.Name ' On ecrit dans la boite de message le nom de la feuille MsgBox NomSheet ' On parcours les graphiques de la feuille For Each Graph In Sheets.ChartObjects i = i + 1 ' Selection d'un graphique Sheets.ChartObjects(i).Activate NomGraph = ActiveChart.Name ' On affiche le nom du graphique exporté MsgBox NomGraph ' Chemin où l'on veut exporter les graphiques Fich = "c:/Chemin/" ' On lance la procédure d'export ActiveChart.Export Filename:=Fich & NomGraph & ".gif", FilterName:="GIF" Next Next End Sub
10 juil. 2013 à 22:43
Il s'agit de la variable "i" qui n'est pas remise à 0 dans la première boucle du for.
Voici un code SANS erreur qui extrait au format GIF TOUS les graphiques de TOUS les onglets du fichier. Ce fichier Excel est à convertir en .XLSM
' -----------------------------------------------------------
' DEBUT
Sub ExportGraph()
' Chemin où l'on veut exporter les graphiques
Destination = "C:\Users\moi\Desktop"
' Déclaration des variables
Dim Sheets As Variant
Dim NomSheet As String
Dim Graph As Variant
Dim NomGraph As String
Dim Fich As String
Dim i As Byte
' Boucle parcourant les feuilles
For Each Sheets In ActiveWorkbook.Sheets
NomSheet = Sheets.Name
i = 0
' On écrit dans la boite de message le nom de la feuille
'MsgBox NomSheet
' On parcours les graphiques de la feuille
For Each Graph In Sheets.ChartObjects
i = i + 1
' Sélection d'un graphique
Sheets.ChartObjects(i).Activate
NomGraph = ActiveChart.Name
' On affiche le nom du graphique exporté
'MsgBox NomGraph
' On lance la procédure d'export
ActiveChart.Export Filename:=Destination & NomGraph & ".gif", FilterName:="GIF"
Next
Next
End Sub
' -----------------------------------------------------------
' FIN
Il manquait "i=0". Testé avec succès le 10/07/2013 dans un fichier .XLSM.
2 avril 2008 à 15:05
ca ressemble plutot à un "pas de ActiveWorkBook"
2 avril 2008 à 14:42
j'ai déclaré oSheet comme objet.
mais le même problème qui persiste
erreur d'exécution 91
"variable objet ou variable bloc With non définie" le problème est dans "ActiveWorkbook.sheets"
Merci de me répondre.
2 avril 2008 à 13:17
Dim oSheet As Object
2 avril 2008 à 11:36
erreur d'exécution 91
"variable objet ou variable bloc With non définie"
ma question c'est quelle est ke type de déclaration de l'objet oSheet?
set oSheet = new .....
Merci de me répondre.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.