OVH Cloud OVH Cloud

Charts - VB - Redimensionner une série

9 réponses
Avatar
Alexandre Hamelin
Bonjour,

Après 4 jours de recherches et de tests infructueux, je vous le demande:

Un outil excel que je développe actuellement génère des rapports, des
tableaux. J'aimerais qu'une banque de Charts préfaite soit mise-à-jour
automatiquement durant l'application de mon script. Comme les longueurs et le
nombres des séries peux varier d'un rapport à l'autre, je voudrais simplement
sdavoir comment, à partir d'une Chart sur la worksheet("Charts") c'est
possible de faire de telles modifications:
a) modifier la longueur d'un range de source data pour chaque série
b) cacher (idéalement) ou effacer une série ->du coup, je dois savoir
comment la refaire.

J'ai visité environ 25 sites différents de charting en VB sur le net et je
ne comprends rien, certains parlent d'objets charts, d'autres ont une autre
vision sur la question. je suis désespéré, `ca me semble facile et je n'y
arrive pas, tout les codes parlent de commencer avec un Charts.Add et le
reste du code identifie le chart avec la syntaxe ActiveChart. et blablabla.
Je ne veux pas faire un "Select Chart" parce que tout ça doit se passer en
arrière plan, l'usager n'a pas à voir ça.
Voici différentes voies que j'ai expériment. sans succès, en plus d'être
pris pour créer une nouvelle chart à chaque fois...
---
For i = 1 To Requestlevel - 1
With ActiveChart
.SeriesCollection(i).XValues = Sheets("Report Model").Range(Cells(6, i +
3), Cells(EndLine, i + 3))
.Name = Sheets("Report Model").Cells(4, i + 3).Value
etc...
---
For i = 1 To Requestslevel
With Worksheets("Charts").ChartObjects(1).SeriesCollection(i)
.Values = Worksheets("Report Model").Range("d6:d" & EndLine)
.XValues = Worksheets("Report Model").Range("A5:f5")
End With
etc...
---
Comment identifier une chart pour la modifier ensuite?
Comment la modifier?

9 réponses

Avatar
Francois L
Bonjour,

Après 4 jours de recherches et de tests infructueux, je vous le demande:

(...)


Bonsoir,

D'habitude, sur les graphiques, je m'en sors. Mais là, désolé, je ne
comprend rien à la question.

Si tu pouvais la reposer en français et de manière synthétique, je veux
bien essayer.

--
François L

Avatar
Alexandre Hamelin
Très bien,

Dans ma page nommée "Report Model" plusieurs cellules seront modifiées lors
de l'exécution de mon script. Dans une autre page "Charts", un graphique
nommé "Incidents Created" est déjà associé à la page "Report Model". Elle
contient 3 séries couvrant les ranges suivants:
='Report Model'!$D$6:$D$3645
='Report Model'!$E$6:$E$3645
='Report Model'!$F$6:$F$3645

Ces ranges sont les maximums possibles en étendue que les séries devront
couvrir.

Dépendant du rapport tiré par mon utilisateur, je voudrais pouvoir enlever
des séries, ou les remettres si un rapport subséquent les nécessite, ainsi
que modifié dynamiquement la longueur des ranges utilisés. Exemple:
Passer, pour la série 1 nommée "Integration" du range
='Report Model'!$D$6:$D$3645
au range
='Report Model'!$D$6:$D$545

Est-ce possible? Comment?

Ah oui, et... merci!
Avatar
Francois L

re,


Dépendant du rapport tiré par mon utilisateur, je voudrais pouvoir enlever
des séries, ou les remettres si un rapport subséquent les nécessite,


Qu'est-ce qui doit enlever des séries ou les remettre, une action de
l'utilisateur ?


ainsi que modifié dynamiquement la longueur des ranges utilisés. Exemple:
Passer, pour la série 1 nommée "Integration" du range
='Report Model'!$D$6:$D$3645
au range
='Report Model'!$D$6:$D$545


La modification de la source d'une série, c'est décidé par l'utilisateur
ou c'est lié à l'étendue de la plage source ?

--
François L
qui arrête pour ce soir de coder

Avatar
Alexandre Hamelin
En fait, l'utilisateur choisi dès le départ s'il va tirer 1 rapport sur 1, 2,
3 ou même jusqu'à 300 clients à la fois. Il y a entre 1 et 4 lignes contigues
par client, mais ces lignes seront "mergé". L'étendue dépend du nombre de
clients sur lesquels on vut des renseignements. C'est donc lié à l'étendue de
la plage source... Merci et bonne nuit!



re,


Dépendant du rapport tiré par mon utilisateur, je voudrais pouvoir enlever
des séries, ou les remettres si un rapport subséquent les nécessite,


Qu'est-ce qui doit enlever des séries ou les remettre, une action de
l'utilisateur ?


ainsi que modifié dynamiquement la longueur des ranges utilisés. Exemple:
Passer, pour la série 1 nommée "Integration" du range
='Report Model'!$D$6:$D$3645
au range
='Report Model'!$D$6:$D$545


La modification de la source d'une série, c'est décidé par l'utilisateur
ou c'est lié à l'étendue de la plage source ?

--
François L
qui arrête pour ce soir de coder




Avatar
Francois L
En fait, l'utilisateur choisi dès le départ s'il va tirer 1 rapport sur 1, 2,
3 ou même jusqu'à 300 clients à la fois. Il y a entre 1 et 4 lignes contigues
par client, mais ces lignes seront "mergé". L'étendue dépend du nombre de
clients sur lesquels on vut des renseignements. C'est donc lié à l'étendue de
la plage source... Merci et bonne nuit!



Re,

Pour ce qui est d'adapter un graphique à une plage source variable, vas
voir chez Misange
http://www.excelabo.net/xl/graph.php#graphdynamique

--
François L

Avatar
lSteph
Bonjour,
Désolé, pour resumer des charts qui commandent des range pour
redimensioner des séries que l'utilisateur doit trier avec plusieurs
charts dont certains sont dans une feuille ou s'effectue un script qui
doit tout mettre à jour de façon invisible
"je ne comprends rien de concret dans ta demande, qui me permettrait de
visualiser clairement le contexte, et l'objectif.
en revanche voici un site avec
tout ce que vous avez toujours voulu savoir sur les graphiques sans
jamais oser le demander (in english sorry):

http://peltiertech.com/Excel/Charts/index.html

regarde si tu trouves ton bonheur dans la partie
vba charting techniques.

Cordialement.

lSteph



Il se trouve que Alexandre Hamelin a formulé :
Bonjour,

Après 4 jours de recherches et de tests infructueux, je vous le demande:

Un outil excel que je développe actuellement génère des rapports, des
tableaux. J'aimerais qu'une banque de Charts préfaite soit mise-à-jour
automatiquement durant l'application de mon script. Comme les longueurs et le
nombres des séries peux varier d'un rapport à l'autre, je voudrais simplement
sdavoir comment, à partir d'une Chart sur la worksheet("Charts") c'est
possible de faire de telles modifications:
a) modifier la longueur d'un range de source data pour chaque série
b) cacher (idéalement) ou effacer une série ->du coup, je dois savoir
comment la refaire.

J'ai visité environ 25 sites différents de charting en VB sur le net et je
ne comprends rien, certains parlent d'objets charts, d'autres ont une autre
vision sur la question. je suis désespéré, `ca me semble facile et je n'y
arrive pas, tout les codes parlent de commencer avec un Charts.Add et le
reste du code identifie le chart avec la syntaxe ActiveChart. et blablabla.
Je ne veux pas faire un "Select Chart" parce que tout ça doit se passer en
arrière plan, l'usager n'a pas à voir ça.
Voici différentes voies que j'ai expériment. sans succès, en plus d'être
pris pour créer une nouvelle chart à chaque fois...
---
For i = 1 To Requestlevel - 1
With ActiveChart
.SeriesCollection(i).XValues = Sheets("Report Model").Range(Cells(6, i +
3), Cells(EndLine, i + 3))
.Name = Sheets("Report Model").Cells(4, i + 3).Value
etc...
---
For i = 1 To Requestslevel
With Worksheets("Charts").ChartObjects(1).SeriesCollection(i)
.Values = Worksheets("Report Model").Range("d6:d" & EndLine)
.XValues = Worksheets("Report Model").Range("A5:f5")
End With
etc...
---
Comment identifier une chart pour la modifier ensuite?
Comment la modifier?


--
- -

lSteph

Avatar
FxM
Bonjour,

Autre solution : masquer les lignes que tu ne veux pas voir apparaître
dans le graphe.

@+
FxM



Bonjour,

Après 4 jours de recherches et de tests infructueux, je vous le demande:

Un outil excel que je développe actuellement génère des rapports, des
tableaux. J'aimerais qu'une banque de Charts préfaite soit mise-à-jour
automatiquement durant l'application de mon script. Comme les longueurs et le
nombres des séries peux varier d'un rapport à l'autre, je voudrais simplement
sdavoir comment, à partir d'une Chart sur la worksheet("Charts") c'est
possible de faire de telles modifications:
a) modifier la longueur d'un range de source data pour chaque série
b) cacher (idéalement) ou effacer une série ->du coup, je dois savoir
comment la refaire.

J'ai visité environ 25 sites différents de charting en VB sur le net et je
ne comprends rien, certains parlent d'objets charts, d'autres ont une autre
vision sur la question. je suis désespéré, `ca me semble facile et je n'y
arrive pas, tout les codes parlent de commencer avec un Charts.Add et le
reste du code identifie le chart avec la syntaxe ActiveChart. et blablabla.
Je ne veux pas faire un "Select Chart" parce que tout ça doit se passer en
arrière plan, l'usager n'a pas à voir ça.
Voici différentes voies que j'ai expériment. sans succès, en plus d'être
pris pour créer une nouvelle chart à chaque fois...
---
For i = 1 To Requestlevel - 1
With ActiveChart
.SeriesCollection(i).XValues = Sheets("Report Model").Range(Cells(6, i +
3), Cells(EndLine, i + 3))
.Name = Sheets("Report Model").Cells(4, i + 3).Value
etc...
---
For i = 1 To Requestslevel
With Worksheets("Charts").ChartObjects(1).SeriesCollection(i)
.Values = Worksheets("Report Model").Range("d6:d" & EndLine)
.XValues = Worksheets("Report Model").Range("A5:f5")
End With
etc...
---
Comment identifier une chart pour la modifier ensuite?
Comment la modifier?


Avatar
Alexandre Hamelin
Merci à tous, je regarde ça!
Avatar
Francois L
En fait, l'utilisateur choisi dès le départ s'il va tirer 1 rapport sur 1, 2,
3 ou même jusqu'à 300 clients à la fois. Il y a entre 1 et 4 lignes contigues
par client, mais ces lignes seront "mergé". L'étendue dépend du nombre de
clients sur lesquels on vut des renseignements. C'est donc lié à l'étendue de
la plage source... Merci et bonne nuit!




Bonsoir,

Désole, mais je laisse tomber. Je ne sais pas ce que c'est que des
lignes "mergées". Je ne sais pas comment tes données sont produites et
leur organisation. Je en sais pas rendre lisible un graphique comportant
1200 lignes (300 clients X 4 lignes), etc.

Sur la manière d'attribuer un nom à un graphique, il y a une explication
sur excelabo, site déjà cité dans mon post d'hier.

--
François L
qui n'a jamais essayé de monter un restaurant gastronomique sous
prétexte qu'il sait faire cuire des nouilles