Probleme d'ajout de donnees dans un graph

Résolu
Signaler
Messages postés
24
Date d'inscription
mercredi 9 janvier 2008
Statut
Membre
Dernière intervention
28 mars 2008
-
Messages postés
24
Date d'inscription
mercredi 9 janvier 2008
Statut
Membre
Dernière intervention
28 mars 2008
-
Bonjour,

voici mon probleme,

Je voudrais faire une mise a jour automatique d'un graph.
Mon malheur est que je ne trouve pas la bonne ligne de commande pour lui donner ces valeurs,
j'ai  testé plusieurs possibilités mais aucune ne fonctionne, et je me demande donc si la facon dont je veux update mon graph peux fonctionné en la commandant depuis VB.


en fait j'ai des valeur eparpillées dans une collonne, jai recuperer le nom de chaque cellules qui m'interresse dans une variable de type string, et je voudrais envoyer cette variable pour que mon graph repere les nouvelle donnees
la ligne de commande ressemble a ca :
ActiveChart.SeriesCollection(1).XValues = _
        Worksheets("Overview").Range(axe_X)         'axe_X etant ma variable string contenant mes cellules


Je sais ou ce trouve le probleme, mais je n'arrive pas a le resoudre:
ma variable axe_X contient mes valeur de cellules
ex: "B11,B15,B19,B23"

et d'apres mes test
ActiveChart.SeriesCollection(1).XValues =
n'accepte pas que les cellules ne se touche pas,
c'est a dire que quand j'ecrit range("B11:B23") ca marche (avec bien sur les cellule dont je ne veux pas : B12, B13,B14 etc...)
Et quand j'ecrit range("B11,B15,B19,B23") ca ne marche pas :(

je vous joint egalement mon petit programme si jamais ca vous interresse...


Sub thickness_update()



Dim axe_X As String
Dim axe_Y As String
Dim ligne As String



Sheets("Overview").Select



axe_X = "B11"
axe_Y = "R11"



Range("B15").Select



Do While Selection.Value <> 0



    ligne = Selection.Row
    axe_X = axe_X & ",B" & ligne
    axe_Y = axe_Y & ",R" & ligne



    Range("B" & ligne).Select
    Selection.End(xlDown).Select



Loop

Sheets("Thickness").Select
ActiveChart.SeriesCollection(1).XValues = _   'Cette ligne bloque
        Worksheets("Overview").range(axe_X)

ActiveChart.SeriesCollection(1).Values = _      'Ainsi que celle-ci
        Worksheets("Overview").range(axe_Y)
End Sub





Si jamais vous avez des infos ou des idee sur la facon dont je peux regler ce probleme je suis preneur !!!

Merci a vous

2 réponses

Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
11
Salut,

il n'est effectivement pas possible de creer un graph directement a`partir de donnés eparpillées sur une ou plusieur feuille.
Donc 2 solutions,
la 1ere, peut etre la plus simple, est d'avoir un tableau intermediaire dans une feuille caché, dans le quel tu regroupes les donnés.
la 2ieme consiste a ecrire directement les valeurs dans la "SeriesCollection" voulue sous la forme: XValues = "={1,2.5,3,1,0,6.8,10}"

Sub DataGraph()
    Dim ValeurAxeX As String, Dim ValeurAxeY As String, i As Long, separateur As String
    ValeurAxeX = "={"
    ValeurAxeY = "={"
    separateur = ","
    ActiveSheet.ChartObjects("Chart 1").Activate
    For i = 11 To 23 Step 4 'avec cette boucle on concatene les valeurs des cellules des colonnes B et R toute les 4 cellules        If i 23 Then separateur "}"
        ValeurAxeX = ValeurAxeX & Worksheets("Overview").Range("B" & i).Value & separateur
        ValeurAxeY = ValeurAxeY & Worksheets("Overview").Range("R" & i).Value & separateur
    Next
    With ActiveChart.SeriesCollection("1")
        .XValues = ValeurAxeX
        .Values = ValeurAxeY
    End With
End Sub

en suite comme il n'y pas de lien directe le graph ne sera pas mis a jour automatiquement donc il te faudras utilisé l'evenement change de la feuille qui contient les donnés pour verifier si une des donnés a changée et lancer la macro pour mettre a jour le graph si c'est bien le cas

Vala

A+
Messages postés
24
Date d'inscription
mercredi 9 janvier 2008
Statut
Membre
Dernière intervention
28 mars 2008

OK merci
Je vais tester de faire ca en macro et si ca marche pas je ferais une table cachee sur laquelle je viendrais prendre les donnees,

Sinon personne a le numero de telephone des concepteurs d'excel que je les allumes sur le fait kon ne puisse pas gerer mon probleme en maccro mais kon puisse le faire a la main ??? :P