Graphique et légende dynamique - VB/VBA/VBS - Programmation
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 ?)
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 !
Marsh Posté le 31-07-2006 à 14:59:33
clems7516 a écrit : Non, cela est inutile mauvais copier coller |
et la fonction range("nomcompany" ).value ne fonctionnerait pas ?
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 !
Marsh Posté le 31-07-2006 à 15:01:51
ReplyMarsh 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 ?
Marsh Posté le 31-07-2006 à 15:05:06
ReplyMarsh Posté le 31-07-2006 à 15:09:28
clems7516 a écrit : Si, c est un string ! |
range("nomCompany" ).value alors ?
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 :!
Marsh Posté le 31-07-2006 à 15:12:58
ReplyMarsh 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 ?
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 !!!
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 ?
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?
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 ?
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 ?
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 !
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...
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
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 ! |
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 ?
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é ?
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