Problème création graphique automatisée - VB/VBA/VBS - Programmation
Marsh Posté le 10-08-2006 à 09:45:59
Moi j'utilise ca pour generer mes graphiques, ca pourra t'aider :
Dim GraphPPMFour As Chart
Set GraphPPMFour = ThisWorkbook.Charts.Add
GraphPPMFour.ChartType = xlColumnStacked
GraphPPMFour.ChartArea.Interior.Color = vbWhite
ActiveChart.Shapes.AddTextbox(msoTextOrientationHorizontal, 8.25, 9#, 89.25, 21.75).Select
Selection.Characters.Text = Now()
GraphPPMFour.SetSourceData _
Source:=Sheets("Base de donnees DOPA" ).Range("donnee" ), _
PlotBy:=xlColumns
With GraphPPMFour
.HasTitle = True
With .ChartTitle
.Characters.Text = "Indicateur PPM Fournisseur"
.Shadow = True
.Border.Weight = xlColumns
End With
End With
GraphPPMFour.Location _
Where:=xlLocationAsObject, _
Name:="Graphiques Indicateurs"
Marsh Posté le 10-08-2006 à 10:04:21
Merci pour l'aide, cependant j'ai un problème avec une ligne :
GraphPPMFour.SetSourceData _
Source:=Sheets("Feuil2" ).Range("donnee" ), _
PlotBy:=xlColumns
Marsh Posté le 10-08-2006 à 10:11:17
ba "Feuil2" il faut que tu le remplaces par le nom de ta feuille, et "donnee", tu dois y mettre le nom de ta plage de données pour générer ton graphique (pou définir une plage : Insertion > Nom > définir)
Marsh Posté le 10-08-2006 à 10:12:50
ah daccord !! merci pour l'aide !!
une dernière question, quand la plage est aléatoire (les lignes uniquement le sont) comment faire ?
Marsh Posté le 10-08-2006 à 10:15:31
utilise la fonction DECALER, elle permet de prendre en compte les lignes rentrés par l'utilisateur.
bon courage
Marsh Posté le 10-08-2006 à 10:21:32
j'ai toujours une erreur sur la même ligne :s (erreur définie par l'application ou par l'objet). où définit-on "donnee" ? c'est le nom que l'on met avec DECALER(Feuil1!$A$2;0;0;NBVAL(Feuil1!$A:$A)-1 ?
merci pour l'aide
Marsh Posté le 10-08-2006 à 10:28:48
voila une ligne de selection :
=DECALER(Feuil1!$A$2;;;NBVAL(Feuil1!$A:$A)-1)
Marsh Posté le 10-08-2006 à 10:33:26
ok mais j'ai toujours un problème avec une ligne :
GraphPPMFour.SetSourceData _
Source:=Sheets("Feuil2" ).Range("donnee" ), _
PlotBy:=xlColumns
c'est peut-être le terme donnee qui pose problème je ne sais pas trop
Marsh Posté le 10-08-2006 à 10:36:47
ba il faut que tu mettes bien le bon nom de graphique, le nom de la feuille que tu utilise et le nom de la plage de données que tu as créer
chez moi ca marche ^^
Marsh Posté le 10-08-2006 à 10:45:20
est-ce que je peux t'envoyer mon document pour voir si j'ai fait une erreur bête stp ?
Marsh Posté le 10-08-2006 à 12:23:35
est-ce que tu pourrais me commenter le code stp pour que je vois d'où viens le problème ?
Marsh Posté le 10-08-2006 à 12:30:13
faut pas abuser lol je t'ai filé un code qui marche qui n'est pas tres complexe à comprendre ^^
Marsh Posté le 10-08-2006 à 12:31:16
ben oui mais j'ai toujours le même problème avec cette ligne :
GraphPPMFour.SetSourceData Source:=Sheets("Feuil2" ).Range("donnee" ), PlotBy:=xlColumns
Marsh Posté le 10-08-2006 à 12:35:08
je t'ai passé des lignes de code qui marche, je t'ai expliqué ce qu il fallait mettre dedans.
Désolé mais je vais pas faire ton projet a ta place.
Marsh Posté le 10-08-2006 à 12:43:21
oula !! mais je n'ai jamais demandé ça, j'essaie juste de comprendre.
le truc c'est que quand je fais Insertion > Nom > définir et que je mets donnee comme nom et que je déclare ma plage (="DECALER(Feuil2!$A$2;;;NBVAL(Feuil2!$A:$D)-1)" ), le code ne s'éxécute pas correctement, c'est pourquoi je demandais des explications.
Marsh Posté le 10-08-2006 à 12:47:33
moi je t'ai donné un exemple, apres pourquoi ta ligne ne marche pas je peux pas le savoir
=DECALER(Feuil1!$A$2;;;NBVAL(Feuil1!$A:$A)-1)
cette ligne marche a toi de l'adapter a ton projet
bon courage
Marsh Posté le 10-08-2006 à 12:54:45
ok maintenant que j'ai modifié ce que tu m'as dit ça marcha presque en entier. reste plus que ça qui pose problème :
GraphPPMFour.Location Where:=xlLocationAsObject, Name:="Graphiques"
Le name qu'il faut remplir doit correspondre à quoi ?
merci pour l'aide
Marsh Posté le 10-08-2006 à 12:55:59
ca doit correspondre au nom de la feuille ou le graphique doit etre créé
Marsh Posté le 10-08-2006 à 12:57:28
ah ok donc ce n'est pas ça le problème. Est-ce que tu as déjà eu ce message d'erreur : la méthode Location de l'objet '_Chart' a échouée. ?
Marsh Posté le 10-08-2006 à 13:01:19
ca ne me dit rien mais il faut que tu ai Name:="nom_de_ta_feuille"
ou nom_de_ta_feuille doit etre la feuille ou le graphique se créé et evidement cette feuille doit exister
Marsh Posté le 10-08-2006 à 13:03:03
ahhh ben c'est cool alors !! ç marche nikel !!
merci beaucoup
Marsh Posté le 10-08-2006 à 09:36:15
Bonjour,
j'ai créé une macro, qui grâce à une requête Access, me permet de récupérer des valeurs et de les ordonner en tableau dans Excel. Maintenant je voudrais que les graphiques soient automatisés que ce ne soit pas à l'utilisateur de le faire. Le morceau de code qui suit est peut-être une réponse à mon problème, cependant j'ai une erreur lors de son exécution : variable objet ou variable de bloc With non définie (ceci correspond à la ligne Cells.find).
Si quelqu'un pouvait m'aider, merci.