Graphique : taille plage de données qui varie Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
L
Laura0410
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 4 août 2014
Version d'Excel : 2003

Message par Laura0410 » 4 août 2014, 14:03

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 :-D

Je vous en remercie d'avance ^^
Avatar du membre
fred2406
Membre impliqué
Membre impliqué
Messages : 1'918
Appréciations reçues : 26
Inscrit le : 13 mai 2014
Version d'Excel : 2007-201364bits-2011MAC

Message par fred2406 » 4 août 2014, 14:55

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
Modifié en dernier par fred2406 le 4 août 2014, 14:59, modifié 1 fois.
Je ne réponds pas aux M.P. non sollicités.
Fred
Avatar du membre
galopin01
Passionné d'Excel
Passionné d'Excel
Messages : 5'540
Appréciations reçues : 55
Inscrit le : 18 septembre 2008
Version d'Excel : 2010 / 2016
Téléchargements : Mes applications

Message par galopin01 » 4 août 2014, 14:56

Bonjour,
:joindre:
A+
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
L
Laura0410
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 4 août 2014
Version d'Excel : 2003

Message par Laura0410 » 4 août 2014, 15:15

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
Classeur2.xlsm
(15.42 Kio) Téléchargé 12 fois
Avatar du membre
fred2406
Membre impliqué
Membre impliqué
Messages : 1'918
Appréciations reçues : 26
Inscrit le : 13 mai 2014
Version d'Excel : 2007-201364bits-2011MAC

Message par fred2406 » 4 août 2014, 15:46

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
Je ne réponds pas aux M.P. non sollicités.
Fred
L
Laura0410
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 4 août 2014
Version d'Excel : 2003

Message par Laura0410 » 4 août 2014, 16:02

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 !!!!
Classeur2.xlsm
(32.3 Kio) Téléchargé 13 fois
Avatar du membre
fred2406
Membre impliqué
Membre impliqué
Messages : 1'918
Appréciations reçues : 26
Inscrit le : 13 mai 2014
Version d'Excel : 2007-201364bits-2011MAC

Message par fred2406 » 4 août 2014, 16:52

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
Je ne réponds pas aux M.P. non sollicités.
Fred
L
Laura0410
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 4 août 2014
Version d'Excel : 2003

Message par Laura0410 » 4 août 2014, 17:05

Merci quand même ! Bonnes Vacances !
Avatar du membre
fred2406
Membre impliqué
Membre impliqué
Messages : 1'918
Appréciations reçues : 26
Inscrit le : 13 mai 2014
Version d'Excel : 2007-201364bits-2011MAC

Message par fred2406 » 5 août 2014, 08:26

[url] http://forum.excel-pratique.com/excel/b ... 9.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
Je ne réponds pas aux M.P. non sollicités.
Fred
L
Laura0410
Nouveau venu
Nouveau venu
Messages : 5
Inscrit le : 4 août 2014
Version d'Excel : 2003

Message par Laura0410 » 5 août 2014, 15:33

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 !
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message