Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

EXEMPLE D'AFFICHAGE D'UN GRAPHIQUE, DANS UN USERFORM, POUR VBA EXCEL


Information sur la source

Catégorie :VBA Classé sous : graphique, vba, excel, userform Niveau : Débutant Date de création : 22/05/2006 Date de mise à jour : 25/05/2006 07:38:38 Vu : 24 483

Note :
8 / 10 - par 3 personnes
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note


Description

Cliquez pour voir la capture en taille normale
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

  • 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à !
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à !

Historique

25 mai 2006 07:38:39 :
2 ème méthode rajoutée (5 lignes)

Commentaires et avis

signaler à un administrateur
Commentaire de kalobit le 22/08/2006 11:37:49

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

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Aide VBA Excel userform .... Urgent .. [ par Metos ] Bon voila je cree un useform . je recupere les données de noms de clients etc.. dans une liste. Par la suite je voudrais que lorsque j enregistre les Résolution d'ecran sur Excel et VBA [ par Quecks ] Slt,je crée des userform avec une résolution 800*600 mais lorsque je les envoie à ceux qui travail avec une résolution 1024*768, les userform ne couvr SOS Vba excel :placer un graphique à un endroit précis d'une feuille [ par zitor ] SOS Vba excel :placer un graphique à un endroit précis d'une feuille !Je ne sais pas du tout comment faire ! HELP please ?!Zitor VBA EXCEL: Données X et Y pour un graphique [ par Petitgus ] Salut !Je cherche à insérer ds un graphique (nuage de pts) des séries directement à partir des valeurs contenues dans des variables (vecteurs ou matri graphique dans excel avec vba ??? [ par cyberlulu ] Salut !Je travaille sur excel. J'ai ajouté un graph sur une nouvelle feuille. Sur la feuille 1, j'ai mis un bouton pour passer sur la feuille graph1 : Code VBA [ par bubuf ] Bonjour à tous,Après avoir créer une Userform dans EXCEL,Comment ajouter ce controle "USERFORM" sur l'emplacement précis d'une cellule ( par ex : rang Graphique sous excel [ par fisheye510 ] salutJ'ai un petit probléme avec les graphiques sous excel, j'ai réalisé une interface sous VBA qui permet de créer des graphiquesa partir de données graphique excel & vba [ par grunnico ] Bonjour,je cree des graphiques excel avec vb en ajoutant des nouvelles series, puis je defini un ens de donnees et je l'affecte a ma serie. Le problem Excel et VBA [ par buz5 ] Bonjour, je travaille sur VBA et excel et j'aimerez inserrer un sous formulaire (comme dans access) dans un userform et pouvoir saisir plusieurs ligne UserForm Excel vba [ par popysan ] Bonjour,J'utilise un UserForm appelé à partir d'un fichier excel et j'aimerai que celui-ci affiche les dernières saisies à chaque réouverture mais il


Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,36 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.