|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : juin 2010 Messages : 7 ![]() |
Bonjour,
Je veux tracer un graphe dont les valeurs sont contenues dans la colonne C, de C1 a Cx, la premiere valeur est toujours en C1, la derniere dépend de l'utilisateur, je sais que le nombre de données est en NB_Jours. Je me suis servi de l'enregistreur de macro, ceci marche bien mais le nombre de valeurs est figée, par exemple la plage $C$1:$C$20 si lors de mon enregistrement il y avait 20 valeurs, j'ai donc remplacé $C$1:$C$20 par $C$1:$C$NB_Jours dans la macro (NB_Jours est définie plus haut). Code :
A l'excution, j'ai un message d'erreur "Erreur d'execution 1004", la methode 'range' de l'objet'_global' a échoué. Ce que je ne comprends pas, c'est qu'a la suite de ce message d'erreur, si je clique sur 'Fin' et que je vais sur la feuille, le graphe est correctement traçé avec la sélection effectuée qui est bonne. Puisque la sélection est faite par Range(Selection, Selection.End(xlDown)).Select, y a t-il un moyen de representer graphiquement cette zone autrement que par ma zone $C$1:$C$NB_Jours ? Pourquoi Excel m'indique un message d'erreur ? alors que quand je vais sur la feuille de graphe, ce graphe est bien fait ? Question subsidiaire : Le graphe se positionne en milieu d'ecran, comment definir le positionnement et la taille du graphe dans la feuille ? (je voudrais en mettre plusieurs) Merci beaucoup. |
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Une première remarque, remplace
Code :
ActiveChart.SetSourceData Source:=Range("'Graphes'!$C$1:$C$NB_Jours") Code :
ActiveChart.SetSourceData Source:=Range("'Graphes'!$C$1:$C$" & NB_Jours) |
|
|
10
|
|
|
#3 | ||||
|
Invité de passage
![]() Inscription : juin 2010 Messages : 7 ![]() |
Merci pour cette réponse, je viens d'essayer, j'ai toujours la même erreur.
En revanche, en regardant, je me dit que le fait de déterminer la zone de valeurs Code :
Code :
Ceci dit, j'ai toujours la même erreur, une autre idée ? Merci d'avance |
||||
|
|
00
|
|
|
#4 | ||
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Je n'avais pas tout regardé, c'était la syntaxe qui m'avait choquée en premier lieu.
Si NB_jours est une plage nommée, comme tu as l'air de le dire, tu peux faire Code :
ActiveChart.SetSourceData Source:=Range("'Graphes'!$C$1:$C$" & Range("NB_Jours").Value) Code :
|
||
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : juin 2010 Messages : 7 ![]() |
Je te remercie mais toujours pas !
Ca ne marche pas, je n'ai plus rien de traçé (mais je n'ai plus de messages d'erreurs !) Je m'exprime mal. Juste avant cette macro qui doit tracer le graphe, j'ai demandé a l'utilisateur une date et NB_Jours est la difference entre la date du jour et celle donnée, 5 par exemple s"il a renseigné 24/01/2012 Ensuite pour chaque jour, je calcule une valeur, disons 2 fois le nb de jour pour faire simple, j'ai donc en colonne C 2 4 6 8 10 La difficulté, c'est que comme je ne connais pas le nombre de jours au départ, elle demarre toujours en C1, se termine en C5 ci-dessus mais ca pourrait etre plus long. Dans l'exemple ci-dessus, NB_Jours est de 5, j'essayais donc de passe C5 en argument. En resumé, je veux obtenir le graphe C1:C5 en sachant que C5 peut changer et etre C6, C7 etc |
|
|
00
|
|
|
#6 | ||
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Tu as plusieurs solutions :
- Soit tu déclares nbJours comme une variable globale. - Soit c'est un paramètre de la procédure Tracer_Graphe. - Soit tu utilises ma 2ème proposition qui n'est pas idéale car tu as déjà l'info du nombre de jours. Ensuite, je ne suis pas sûr que ton graph se créé bien via ta méthode. S'il s'affichait la dernière fois, alors que le code plantait, c'est surement que tu l'avais déjà créé en enregistrant ta macro, parce que sinon, à moins d'un miracle... !!! Donne ton code complet si tu veux En attendant ton code pour qq chose de plus propre, ça marche chez moi : Code :
|
||
|
|
10
|
|
|
#7 | ||
|
Invité de passage
![]() Inscription : juin 2010 Messages : 7 ![]() |
Il s'agit en effet peut_être d'une mauvaise déclaration, voici le code complet
Code :
Il ne me reste plus qu'a positionner le graphe etc Je vais chercher, J'ai largement assez abusé de ta patience. Encore merci |
||
|
|
00
|
|
|
#8 | ||
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Allez, je suis en forme aujourd'hui, voici le code pour placer où tu veux le graph
![]() Code :
Autre remarque : si ton nombre de graphiques est fixe, tu n'as peut-être pas besoin de les créer par macro. Tu peux utiliser un range dynamique comme source et ils se mettront à jour après tes calculs. |
||
|
|
10
|
|
|
#9 |
|
Invité de passage
![]() Inscription : juin 2010 Messages : 7 ![]() |
Grand Merci, super sympa de ta part.
Bonne soirée, à toi et aux membres de ce site toujours prêts a donner un coup de main. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com