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

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

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.