Graphique sur excel

dave2047 Messages postés 12 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 7 octobre 2005 - 12 janv. 2005 à 10:45
cs_bouchrabouchra Messages postés 10 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 18 février 2005 - 21 avril 2005 à 16:44
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

mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 7
12 janv. 2005 à 11:32
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
0
dave2047 Messages postés 12 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 7 octobre 2005
12 janv. 2005 à 13:06
t'a msn ou skype?
0
mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 7
12 janv. 2005 à 14:50
Non mais si t'as des problèmes, vas-y, je reste sur cette page.
0
dave2047 Messages postés 12 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 7 octobre 2005
12 janv. 2005 à 15:15
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)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dave2047 Messages postés 12 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 7 octobre 2005
12 janv. 2005 à 15:31
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)
0
dave2047 Messages postés 12 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 7 octobre 2005
12 janv. 2005 à 15:35
arf dernier probleme comment on fai pour changer les valeurs maxi et mini sur les axes.
merci bcp
0
mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 7
12 janv. 2005 à 15:44
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
0
dave2047 Messages postés 12 Date d'inscription mercredi 12 janvier 2005 Statut Membre Dernière intervention 7 octobre 2005
12 janv. 2005 à 15:50
merci et vive les acquisitions SODEMO
0
cs_bouchrabouchra Messages postés 10 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 18 février 2005
21 avril 2005 à 16:44
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
0
Rejoignez-nous