Graphique : taille plage de données qui varie

Bonjour,

J'ai créé une macro qui traite des données d'une colonne , choisie par l'utilisateur grâce à un UserfOrm, et qui stocke les valeurs résultats dans la colonne qui suit ma plage de données.

Et je souhaiterais maintenant créer une macro qui retourne un graphique traçant ces dernières valeurs en fonction d'un incrément qui varie de 1 à 30. Le problème est que mon fichier texte d'entrée que je convertit en tableau varie en nombre de colonne. Je dois donc passer par

 der_col = Range("A1").End(xlToRight).Column + 1 

der_col correspond donc à la dernière colonne après avoir stocké les valeurs.

J'ai donc écrit ensuite ces lignes :

 ActiveChart.SeriesCollection.NewSeries
    ActiveChart.SeriesCollection(1).XValues = "={1,30}"
    ActiveChart.SeriesCollection(1).Values = "='" & ActiveSheet & "' !R2C" & der_col & ":R31C" & der_col
    ActiveChart.SeriesCollection(1).Name = "=""Moyenne""" 

Or ce message d'erreur s'affiche à la ligne 3 : Propriété ou méthode non gérée par cet objet.

Je suppose que je rédige mal mon code...

Je n'ai rien trouvé qui pourrait m'aider ou du moins que je comprenne à ce sujet.

Auriez-vous une solution pour tracer des graphiques dont les plages de données varient en colonnes ?

J'ai essayé avec range et cells mais je n'ai pas réussi.

J'ai un seconde problème pour nommer ce graphique. J'utilise :

 With ActiveChart
        .HasTitle = True
        .ChartTitle.Characters.Text = "Valeurs axiales moy/min/max de :" & Range(c & 1).Value
        .Axes(xlCategory, xlPrimary).HasTitle = True
        .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Axial Increment"
        .Axes(xlValue, xlPrimary).HasTitle = True
        .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = Range(c & 1).Value
    End With 

Mais, le code bug à la ligne 3. "c" représente la colonne choisie par l'utilisateur. Ce qui me parait étrange, c'est que j'utilise la ligne de code suivante un peu plus haut qui fonctionne :

Cells(1, der_col).Value = " Moyenne de :" & Range(c & 1).Value

Peut-être des erreurs de syntaxes ?

J'espère que mes explications étaient claires et qu'une âme charitable sera prête à m'aider

Je vous en remercie d'avance ^^

bonjour

ICi

 ActiveChart.SeriesCollection(1).Values = "='" & ActiveSheet & "' !R2C" & der_col & ":R31C" & der_col

il manque le nome de la feuillea transformé comme ceci :

 ActiveChart.SeriesCollection(1).Values = "='" & ActiveSheet.name & "' !R2C" & der_col & ":R31C" & der_col

et ici

si "c" represente la colonne C il suffit de mettre "C1" directement plutot que C & 1 qui ne marche pas

donc a faire :

       .ChartTitle.Characters.Text = "Valeurs axiales moy/min/max de :" & Range("C1").Value

meme chose en peu plus bas

.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = Range("C1").Value

sinon si c est une variable contenant la lettre de la colonne

faire : Range(c & "1").Value

mis il faut voir comment tu met la colonne dans cette variable ce que tu ne montre pas ...

Fred

Bonjour,

A+

Bonjour,

Merci Fred2406,

J'avais effectivement mis avant ActiveSheet.Name mais je l'ai ensuite modifié , pensant que l'erreur venait de là. Mais je n'ai pas le même message d'erreur dans ce cas là donc le problème ne doit pas être totalement résolu.

Message d'erreur : Impossible de définir la propriété "values " de la classe séries.

Je travaille avec excel 2003 : je me suis trompée de synthaxe ?

Merci en tout cas pour ce début d'aide !!

En ce qui concerne le "c" : il s'agit d'une variable qui prend comme valeur une lettre que l'utilisateur renvoie dans un TextBox ( A, B , .... ZZ).

C'est pour ça que je n'ai pas marqué C1 ou A1 ...

Dans les lignes de codes précédentes, VBA comprend très bien le range( c &1 ).

Enfin, désolé Galopin, je n'ai pas mis le fichier car celui est assez grand : je pensais qu'il serait plus simple de citer les lignes où je bloquais.

Encore merci

13classeur2.xlsm (15.42 Ko)

re bonjour

je viens de telecharger ton fichier tu as du trop l'epurer car il bloque tout de suite a l'instruction :

c = Moy.coll.Text

mais passons j'ai peut etre vu une autre erreur

tu as une espace de trop entre ' et ! (là ou j'ai mis un E pour te montrer

ActiveChart.SeriesCollection(1).Values = "='" & ActiveSheet & "'E!R2C" & der_col & ":R31C" & der_col

a supprimer donc

"='" & ActiveSheet.Name & "'!R2C" & der_col & ":R31C" & der_col

fred

Oui excuse-moi : si tu n'as pas tout le code ça ne risque pas de marcher.

Pour l'espace ça ne marche pas non plus :-s

Voici le début. J'ai mis un exemple de tableau que j'ai à traiter.

Encore merci !!!!

15classeur2.xlsm (32.30 Ko)

désolé plus le temps pour ça pour le moment

peut-etre en fin de semaine maintenant si le problème n'est pas encore résolu

je pars quelques jours en vacances

Fred

Merci quand même ! Bonnes Vacances !

[url] https://forum.excel-pratique.com/excel/bouton-macro-pour-actualiser-un-graphique-complexe-t53989.html[url]

bonjour laura je viens de me rappeler que j ai repondu a un post similaire il y a quelques jours va voir le fichier que j ai fait sur ce post...

cela pourra peut etre t aider

fred

Bonjour Fred,

Alors finalement, comme c'était plutôt urgent, j'ai contourné le problème en créant une feuille où je mis mes données afin de savoir exactement où se trouvent les colonnes à traiter pour le graphique.

Je ne suis pas sûre que ça soit très optimisé mais bon, je n'ai pas le choix : pas beaucoup de temps.

Encore merci !

Rechercher des sujets similaires à "graphique taille plage donnees qui varie"