Exemple d'affichage d'un graphique, dans un userform, pour vba excel

Soyez le premier à donner votre avis sur cette source.

Snippet vu 62 071 fois - Téléchargée 31 fois

Contenu du snippet

Langage : VBA, pour Excel

Ce n?est pas un code de fou, c?est tout simplement une solution pour faire une sorte d?aperçu d?un graphique, placé dans un UserForm.
Il me semble que plusieurs questions ont été posé, dans le forum, concernant l?affichage de graphiques, et peu de monde avait une solution.
Voilà, si ça peut aider quelqu?un !
Bonne prog à tous.
Mortalino.

Source / Exemple :


Tout d?abord, il faut créer un bouton (sur la feuille) que j?ai nommé « cbtAfficheGraphique »:

Private Sub cbtAfficheGraphique_Click()

' active la feuille contenant le graphique (c?est fou, la feuille s?appelle ? ben 
' « Graphique »
	Sheets("Graphique").Select

' référencé l'objet CurrentChart, là dans l'exemple, c'est le 2ème graphique (j?en ai plusieurs)
' 'ChartObjects(2)'
	Set CurrentChart = Sheets("Graphique").ChartObjects(2).Chart

' active le graphique (qui s?appelle "Graphique 3")
	Sheets("Graphique").ChartObjects("Graphique 3").Activate
	ActiveChart.ChartArea.Select

' j?ai placé le titre dans la cellule D7 (pour divers besoins) donc le titre est récupéré 
' comme cela, sinon vous pouvez mettre le titre directement sur le graphique (me 
' concernant, j?ai un calcul de rafraichissement du mois précédant, imbriqué dans le 
' titre, d?où le placement de celui-ci dans une cellule)
	ActiveChart.ChartTitle.Text = Range("D7").Value
	ActiveChart.ShowWindow = True

' attribution d?un nom pour l?export du graphique, dans le dossier courant du fichier
	Fname = ThisWorkbook.Path & "\temp2.gif"
	CurrentChart.Export Filename:=Fname, FilterName:="GIF"

' ensuite bah j?ai créé un UserForm (frmGraphique) avec juste une image (vierge, qui 
' s?appelle Image1), qui charge donc l?image venant d?être enregistré.
	frmGraphique.Image1.Picture = LoadPicture(Fname)

' puis affichage du graphique
	frmGraphique.Show

End Sub

___________________________________________________________________________________

Voici une 2ème solution très simple, qui permet en fait de placer le graphique 
(s'il se situe sur la même feuille) dans un "Aperçu".

Code à placer dans un bouton, par exemple :

        ActiveSheet.ChartObjects("Graphique 1").Activate
    With ActiveChart
        .PlotArea.Select
        .ShowWindow = True
    End With

J'ai essayé en remplaçant ActiveSheet par Sheets(1) par exemple, c'est pour le cas
où le graphique est appelé par un bouton d'une autre feuille.
Ca fonctionne mais si je rajoute une ligne supplémentaire pour revenir à la feuille
initiale, la fenêtre graphique se ferme aussi sec..

Voilà !

A voir également

Ajouter un commentaire

Commentaires

kalobit
Messages postés
169
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
7 avril 2008
2 -
Salut.

Effectivement, l'exportation du graph en fichier graphique est à ma connaissance la seule solution pour afficher un graph dans une form.

Par contre il existe d'autres formats possibles que le GIF, à savoir JPEG, TIF et PNG.

Merci pour cette source

+++ K@lobit
Garcinou
Messages postés
7
Date d'inscription
dimanche 26 avril 2009
Statut
Membre
Dernière intervention
18 juillet 2011
-
Bonjour

j'ai une petite question que j'ai déjà posté à laquelle vous pourriez peut-être répondre :

Comment faire pour agrandir le graphique avant de l'exporter? (afin d'avoir une meilleure qualité) et faire en sorte que cela marche à chaque fois que l'on exécute la macro? (peut-être faut-il supprimer le graph de la feuille excel après exportation?)

Merci d'anvance

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.