Graphique sur excel

Signaler
Messages postés
12
Date d'inscription
mercredi 12 janvier 2005
Statut
Membre
Dernière intervention
7 octobre 2005
-
Messages postés
10
Date d'inscription
jeudi 20 janvier 2005
Statut
Membre
Dernière intervention
18 février 2005
-
voila je doi tracer un graphique 2d et mes plages de données sont sur la colonne 1 et la colonne 5, et ont une longueur dependant d'une variable.
vu que je debute sur vba, kkun pourrai prendre le tps de m'expliquer les lignes de commande à rentrer.
je suis sur vba6.
merci d'avance

9 réponses

Messages postés
402
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
7 juin 2009
6
Le code ci-dessous devrait représenter un bon départ.
Sinon si tu as besoin d'autres propriétés du graphique, tu peux toujours enregistrer une macro qui enregistrera les modifs que tu fais manuellement.

J'ai mis un booléen lb_CreerGraphe.
Si lb_CreerGraphe = True, le code exécute le code pour la création d'un graphique.
Sinon il travaille sur le 1e graphe d'une feuille.

Option Explicit


Public Sub gsub_Test()
Dim l_ObjGraphe As ChartObject
Dim l_Graphe As Chart
Dim l_Courbe As Series
Dim ll_LigneDebut As Long
Dim ll_LigneFin As Long
Dim ls_SheetName As String
Dim lb_CreerGraphe As Boolean


ll_LigneDebut = 2
ll_LigneFin = 12
ls_SheetName = ActiveSheet.Name


lb_CreerGraphe = True

If lb_CreerGraphe Then
'Création d'un graphe
Set l_Graphe = Charts.Add
Else
'Sélectionne le graphe de la feuille choisie
Set l_ObjGraphe = Worksheets(ls_SheetName).ChartObjects(1)
Set l_Graphe = l_ObjGraphe.Chart
End If


With l_Graphe
'Type de graphique
.ChartType = xlLineMarkers

If lb_CreerGraphe Then
'Ajoute une courbe
Set l_Courbe = .SeriesCollection.NewSeries
Else
'Travaille avec la 1e courbe
Set l_Courbe = .SeriesCollection(1)
End If
'Définit les plages de valeurs de la courbe
With l_Courbe
'Plage pour les abscisses
.XValues = _
"=" & ls_SheetName & "!R" & ll_LigneDebut & "C1:R" & ll_LigneFin & "C1"
'Plage pour l'ordonnée
.Values = _
"=" & ls_SheetName & "!R" & ll_LigneDebut & "C5:R" & ll_LigneFin & "C5"
End With
'Titre des abscisses
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Abscisses"
'Titre des ordonnées
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Ordonnées"
'Titre du graphique
.HasTitle = True
.ChartTitle.Text = "Mon graphe"
If lb_CreerGraphe Then
'Place le graphe dans la feuille voulue
.Location Where:=xlLocationAsObject, Name:=ls_SheetName
End If
End With
End Sub
Messages postés
12
Date d'inscription
mercredi 12 janvier 2005
Statut
Membre
Dernière intervention
7 octobre 2005

t'a msn ou skype?
Messages postés
402
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
7 juin 2009
6
Non mais si t'as des problèmes, vas-y, je reste sur cette page.
Messages postés
12
Date d'inscription
mercredi 12 janvier 2005
Statut
Membre
Dernière intervention
7 octobre 2005

voila en fait j"ai des valeurs aberantes dans mon tableau et j"aurai voulu savoir s"l etait possible de ne pa en tenir compte pour tracer le graphe (genre prendre que les points inferieur à x)
Messages postés
12
Date d'inscription
mercredi 12 janvier 2005
Statut
Membre
Dernière intervention
7 octobre 2005

g ossi un otre probleme, g une grande dispersion des points. est ce kil est possible de lisser le graphe obtenue meme si ce n'est pa une fonction usuelle ( c soi une courbe de couple soit une courbe de puissance)
Messages postés
12
Date d'inscription
mercredi 12 janvier 2005
Statut
Membre
Dernière intervention
7 octobre 2005

arf dernier probleme comment on fai pour changer les valeurs maxi et mini sur les axes.
merci bcp
Messages postés
402
Date d'inscription
jeudi 25 novembre 2004
Statut
Membre
Dernière intervention
7 juin 2009
6
Dans ce cas, ça complique un peu la construction des plages de valeurs, car il faut construire ta plage en sous-ensembles séparés par des ";". Par exemple, si on veut enlever la 4e ligne, la plage est définie comme ceci :
Seriescollection(1).values = "Feuil1!R1C5:R3C5;Feuil1!R5C5:R6C5"

Il faut donc monter une mini usine à gaz qui permettra de construire cette chaine ci
"Feuil1!R1C5:R3C5;Feuil1!R5C5:R6C5"
(Ce qui n'est pas gagné d'avance, je l'avoue :( )

Je vais essayer de cogiter sur le sujet
Messages postés
12
Date d'inscription
mercredi 12 janvier 2005
Statut
Membre
Dernière intervention
7 octobre 2005

merci et vive les acquisitions SODEMO
Messages postés
10
Date d'inscription
jeudi 20 janvier 2005
Statut
Membre
Dernière intervention
18 février 2005

Bonjour,


Je ne sais pas si je vais pouvoir vous expliquer mon problème. En fait je me connecte à une base de données à laquelle j'envoie une requête. Ensuite je stock les données qui m'intéresse dans deux tableaux, un pour l'axe des X et un pour l'axe des Y. Dans l'axe des ce sont des dates que je voudrais avoir sous le format dd/mm/yyyy h:m:s , mais en traçant le graph, excel m'envoie un message d'erreur.
Alors quelqu'un aurait une idée de comment faire svp c'est très urgent!!!!
merci

bou