laurent3d
-
24 avril 2000 à 17:28
xenarius
Messages postés8Date d'inscriptionjeudi 20 janvier 2011StatutMembreDernière intervention24 mars 2011
-
24 mars 2011 à 14:50
Bonjour,
Comment creer un graphique dans une feuille excel depuis mon appli VB
J'arrive à remplir des cellules grace à une source de ce site, mais j'aurais besoin de plus d'info sur le sujet
1000 Mercis
Ouvre un nouveau projet, ajoute un commandbutton cmdGo et insère le code suivant.
Dim XlSheet As Object
Private Sub cmdGo_Click()
CreationClasseur ' crée un classeur excell et y met des données pour construire le graphe
ConstruireGraph 'construit le graphe
Set XlSheet = Nothing
End Sub
Sub CreationClasseur()
Set XlSheet = CreateObject("Excel.Application") ' crée une application Excell
XlSheet.Application.DisplayAlerts = False 'annule les messages
XlSheet.Application.Visible = True 'rend la fenêtre Excell visible
XlSheet.Workbooks.Add 'ajoute un classeur
'remplit la prèmière feuille de données utilisées pour construire le graphe
'cellule de début = A1 trés important pour dire ou commence les données à mettre dans le graphe
XlSheet.Worksheets(1).cells(1, 1).Value = "Janvier"
XlSheet.Worksheets(1).cells(1, 2).Value = "100"
XlSheet.Worksheets(1).cells(2, 1).Value = "Février"
XlSheet.Worksheets(1).cells(2, 2).Value = "250"
XlSheet.Worksheets(1).cells(3, 1).Value = "Mars"
XlSheet.Worksheets(1).cells(3, 2).Value = "180"
XlSheet.Worksheets(1).cells(4, 1).Value = "Avril"
XlSheet.Worksheets(1).cells(4, 2).Value = "300"
XlSheet.Worksheets(1).cells(5, 1).Value = "Mai"
XlSheet.Worksheets(1).cells(5, 2).Value = "380"
XlSheet.Worksheets(1).cells(6, 1).Value = "Avril"
XlSheet.Worksheets(1).cells(6, 2).Value = "300"
'cellule de fin = B6 trés important pour dire ou se termine les données à mettre dans le graphe
End Sub
Sub ConstruireGraph()
'ne pas oublier d'ajouter la référence Microsoft Excel 8.0 Object Library au projet, sinon impossible de créer l'application Excell
Dim ch As ChartObject
'ch va recevoir le graphique
Set ch = Worksheets(1).ChartObjects.Add(5, 5, 345, 198) ' le graphique sera tracé dans la prémière feuille du classeur
'trace le graphe een prenant les données de la cellule A1 à la cellule B6
ch.Chart.SetSourceData Source:=Worksheets(1).Range("A1:B6"), _
PlotBy:=xlColumns
ch.Chart.ChartWizard Gallery:=xlLine, PlotBy:=xlColumns, HasLegend:=True, CategoryTitle:="Mois", ValueTitle:="Ventes", Title:="Graphe1"
With ch.Chart.Axes(xlValue, xlPrimary)
.HasMajorGridlines = False
End With
-------------------------------
Réponse au message :
-------------------------------
Bonjour,
Comment creer un graphique dans une feuille excel depuis mon appli VB
J'arrive à remplir des cellules grace à une source de ce site, mais j'aurais besoin de plus d'info sur le sujet
1000 Mercis
sifaca
Messages postés4Date d'inscriptionsamedi 27 avril 2002StatutMembreDernière intervention10 juillet 2002 27 avril 2002 à 14:15
slt djiby je trouve ta source tres tres interressante, c'est d'ailleurs une des seules qui marchent dans tout le site de vb ;-)
Je voudrais qd meme te poser une question. Le soft m'ouvre bien excel et affiche bien dans les cellules les données mais a la construction du graphe, il me met une erreur.
C'est surement de ma faute car l'erreur dit:" type defini par l'utilisateur non defini".
Mais comme je suis assez debutant je voudrais que tu me dises ce qu'il faut faire exactemment.
Un grand merci dans l'attente d'une reponse positive.
--sifaca--
Vous n’avez pas trouvé la réponse que vous recherchez ?
frdevecchi
Messages postés2Date d'inscriptionvendredi 20 juin 2003StatutMembreDernière intervention15 janvier 2004 15 janv. 2004 à 23:42
Salut, la source fonctionne bien mais je voudrais que le graphe s'affiche dans un ole de vb, comment faire? ou alors comment enregistrer le chart pour pouvoir l'afficher dans une picture box...
cs_Cryborg
Messages postés30Date d'inscriptionlundi 27 janvier 2003StatutMembreDernière intervention 8 février 2007 29 avril 2004 à 08:10
Bonjour !
La source marche nickel, mais j'aurais une question : je souhaiterais pourvoir utiliser des données qui ne sont pas dans des cellules ou colonnes adjacentes, par exemple A5:A10 pour les étiquettes de données, et C5:C10 pour les données elles-même. Comment faire ?
cs_SoftMaker
Messages postés3Date d'inscriptionmardi 1 février 2005StatutMembreDernière intervention16 septembre 2008 16 sept. 2008 à 19:58
Très pratique ton source, au début ça ne marchait pas sous VB.NET 2008 mais après de nombreuses recherches sur le net j'ai effectuer les modifications nécessaires.
Je vais exposer ce que j'ai fait, si ça peut en aider certain...
D'abord il faut ajouter les "Imports" au début :
Imports Excel
Imports System.Runtime.InteropServices
Pour qu'ils soient reconnus, il faut faire "Ajouter une référence" dans le menu Projet
Dans l'onglet COM on choisi "Microsoft Excel 9.0 Object Library" (9.0 si on a Excel 2000)
Le code est presque le même, sauf ConstruireGraph()
Là j'ai du ajouter quelques "XlSheet." et déclarer les constantes suivantes faute de mieux, si quelqu'un vois une solution plus élégante...
Pour d'autres constantes Excel voir cette URL : http://www.dominoarea.org/forum/viewtopic.php?t=12896
'ne pas oublier d'ajouter la référence Microsoft Excel 8.0 Object Library au projet, sinon impossible de créer l'application Excell
Dim ch As ChartObject
'ch va recevoir le graphique
ch = XlSheet.Worksheets(1).ChartObjects.Add(5, 5, 345, 198) ' le graphique sera tracé dans la prémière feuille du classeur
'trace le graphe een prenant les données de la cellule A1 à la cellule B6
ch.Chart.SetSourceData(Source:=XlSheet.Worksheets(1).Range("A1:B6"), PlotBy:=xlColumns)
ch.Chart.ChartWizard(Gallery:=xlLine, PlotBy:=xlColumns, HasLegend:=True, CategoryTitle:="Mois", ValueTitle:="Ventes", Title:="Graphe1")
With ch.Chart.Axes(xlValue, xlPrimary)
.HasMajorGridlines = False
End With
End Sub
Et Voila et merci encore pour ce source qui va me permettre de tracer des bandes passantes avec des données requeillies sur voltmètre PM2525 Philips via bus GPIB.