Graphique et légende dynamique

Graphique et légende dynamique - VB/VBA/VBS - Programmation

Marsh Posté le 31-07-2006 à 14:50:49    

Voila,  
 
j'ai ecrit une fonction qui me trace les graphique d'un talbeau avec une boucle. Le programme marche bien sauf qu'il se pose un probleme pour la légende qui ne suit pas. Je m'explique avec ce petit bout de code :  
 
Set ns = nc.SeriesCollection.NewSeries
ns.XValues = maSelectionAnn
ns.Values = maSelectionVal
nomCompany = objxlSheetVal.Range("nomCompany" )
ns.Name = nomCompany  
 
or Ns.Name est un String est donc il prend la valeur de la cellule de nomCompany alors que je souhaiterai qu'il y ait sa réference car si je change la valeur de nomCompany cela ne change rien elle reste celle d'origine.  
 
Donc, mon graphique ne veut plus rien dire du tout.  
 
Merci de votre aide et A bientot ;)


Message édité par clems7516 le 31-07-2006 à 14:58:00
Reply

Marsh Posté le 31-07-2006 à 14:50:49   

Reply

Marsh Posté le 31-07-2006 à 14:55:19    

ta ligne de commande ns.XValues = maSelectionAnn apparait 2 fois (utile ?)
 
a quel moment lances-tu  ces assignations de valeurs (évènement ?)

Reply

Marsh Posté le 31-07-2006 à 14:57:37    

Non, cela est inutile mauvais copier coller :)  
 
Sinon je lance a la fin de creation de mon tableau !  
 
mais, je souhaite que cela soit dynamique car il y a un bouton sort donc le graphique doit etre dynamique !

Reply

Marsh Posté le 31-07-2006 à 14:59:33    

clems7516 a écrit :

Non, cela est inutile mauvais copier coller :)  
 
Sinon je lance a la fin de creation de mon tableau !  
 
mais, je souhaite que cela soit dynamique car il y a un bouton sort donc le graphique doit etre dynamique !


et la fonction range("nomcompany" ).value ne fonctionnerait pas ?

Reply

Marsh Posté le 31-07-2006 à 15:00:33    

Non, car elle prend la valeur de la cellule et au contraire je veux juste la reference !

Reply

Marsh Posté le 31-07-2006 à 15:01:51    

en fait, le probleme est le .Name qui est un String est non une Cellule !

Reply

Marsh Posté le 31-07-2006 à 15:03:36    

clems7516 a écrit :

en fait, le probleme est le .Name qui est un String est non une Cellule !


et la varialbe nomCompany c'est pas un string ?

Reply

Marsh Posté le 31-07-2006 à 15:05:06    

Si, c est un string !  
 
mais si je mets Range ca me met Type dismatch

Reply

Marsh Posté le 31-07-2006 à 15:09:28    

clems7516 a écrit :

Si, c est un string !  
 
mais si je mets Range ca me met Type dismatch


range("nomCompany" ).value  alors ? :sweat:

Reply

Marsh Posté le 31-07-2006 à 15:12:35    

Helas, c est tjrs pareil il prend la valeur et non la reference de la cellule  
 
Je tourne en rond :!

Reply

Marsh Posté le 31-07-2006 à 15:12:35   

Reply

Marsh Posté le 31-07-2006 à 15:12:58    

Encore, des idées ou des possibilités ?

Reply

Marsh Posté le 31-07-2006 à 15:14:16    

clems7516 a écrit :

Encore, des idées ou des possibilités ?


qu'appelles-tu la référence de la cellule ? :pt1cable:

Reply

Marsh Posté le 31-07-2006 à 15:18:38    

imagines que dans la colonne A, il y ait mes noms de legende  
 
test1
test2
test3
 
Maintenant, je veux que ma premiere serie se nomme la Premiere cellule donc ici ce serait test1 Mais, si je fais un changement sur mon tableau (que tu pourrais imaginer avec un bouton SOrt qui me trie mon tableau) alors la premiere serie pourrait mainteant se nommer test3.
 
Or, mon graphique dans l'etat actuel ne s'appelle que test1 pour la serie 1 et si je change la valeur de "test1" en "change" cela ne change rien !!!


Message édité par clems7516 le 31-07-2006 à 15:19:21
Reply

Marsh Posté le 31-07-2006 à 15:25:11    

si tu modifies l'ordre des test par ex.:
test2
test3
test1
 
et si alors ta série 1 s'appelle test2
                  série 2 s'appelle test3
et               série 3 s'appelle test1
 
alors au lieu de passer par des range(), tu peux directement passer par des cells() non ?
 :whistle:  :whistle:

Reply

Marsh Posté le 31-07-2006 à 15:33:45    

j'ai pas compris !?

Reply

Marsh Posté le 31-07-2006 à 15:40:20    

si tu appliques un quelconque filtre sur l'ordre de tes nom de compagnie, au lieu de récupérer une zone range ("nomcompany" ) tu peux récupérer une cells(1,1) par exemple... non?

Reply

Marsh Posté le 31-07-2006 à 15:47:38    

Cells ou/et Range ne marche, je viens de le tester :/
 
une autre petite idée ?

Reply

Marsh Posté le 31-07-2006 à 15:52:56    

Je vais aborder le pb d'une facon différente alors ^^ :
Pourquoi passes-tu par objxlSheetVal.Range("nomCompany" ) ? Qu'est-ce que c'est sensé te retourner ?

Reply

Marsh Posté le 31-07-2006 à 15:59:18    

c est un moyen comme un autre de reperer ma premiere cellule dans le cas d'un delete ou insert de ligne ou colonne, cette cellule la ne sera pas perdu !

Reply

Marsh Posté le 31-07-2006 à 15:59:32    

Tu aurais fait comment toi ?

Reply

Marsh Posté le 31-07-2006 à 16:09:29    

ben tu définis une zone dans ta feuille où tu gèreras les noms de compagnies. par exemple Tu décides d'utiliser la colonne C de la Feuil2. Pour qu'à chaque ajout de nom tu le mettes en dessous, tu lui applique la fonction =DECALER... Et tu applique le .Name selon ton range("NomCompany" ) défini comme tel...

Reply

Marsh Posté le 01-08-2006 à 09:42:14    

Je te remercie de ton aide mais je n'ai pas réussi à le faire marcher par conséquent aurais tu essayer ou bien meme un bout de code pour que je comprenne mieux ta méthode !  
 
Merci encore et Merci d'avance de vos aides :)

Reply

Marsh Posté le 01-08-2006 à 09:53:49    

clems7516 a écrit :

Je te remercie de ton aide mais je n'ai pas réussi à le faire marcher par conséquent aurais tu essayer ou bien meme un bout de code pour que je comprenne mieux ta méthode !  
 
Merci encore et Merci d'avance de vos aides :)


1/tu nommes la zone où tu affiches les nom de compagnie "NomCompany" par exemple.
2/ tu ajoutes une fonction =DECALER() avec en arguments :
    -réf;lignes;colonnes;hauteur;largeur (voir aide pour les détails)
3/tu lies la rowsource de ta combo avec Feuil1!NomCompany (ou FEuil2 etc. par exemple)
4/lorsque tu souhaites appliquer un tri sur le nom de compagnie, tri à bulles ou auter, tu as déjà tout au bon endroit...
C'est compris ou je fais caca aussi ? :D
 

Reply

Marsh Posté le 01-08-2006 à 10:09:44    

Es tu sur ke ca marche ?

Reply

Marsh Posté le 01-08-2006 à 10:12:08    

clems7516 a écrit :

Es tu sur ke ca marche ?


c'est comme ca que j'ai développé tout une macro de simulation de coûts oui. Le code, je ne le connais pas par coeur, mais as tu essayé ? :)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed