grosboufLG
Messages postés17Date d'inscriptionmercredi 17 janvier 2007StatutMembreDernière intervention16 juillet 2009
-
30 juin 2009 à 11:15
grosboufLG
Messages postés17Date d'inscriptionmercredi 17 janvier 2007StatutMembreDernière intervention16 juillet 2009
-
30 juin 2009 à 12:00
Bonjour à tous,
J'aurais besoin d'un coup de main s'il vous plait. En effet, je souhaite réaliser un graphique sachant que l'étendue de la plage de données que doit traiter le graphique n'est pas connue.
En fait en fonction des données dans le fichier nous allons avoir plus ou moins de lignes à traiter dans le graphique.
J'ai donc cherché à créer une variable (LignesTableau) qui compte combien il y a de lignes dans mon tableau pour trouver la fameuse étendue (le + 4 est du au fait qu'il y ai 4lignes de passées pour le titre qui viendra après)
Or VBA n'a pas l'air d'aimer ma syntaxe (celle que je vous ai mis en rouge).
Je pense que je vais avoir le même probleme pour la légende des abscisses en vert j'ai "=Calcul!R6C1:R125C1" et il me faudrait un truc du genre "=Calcul!R6C1:RLignesTableauC1".
J'espère que vous allez pouvoir m'aider, merci d'avance
PS : je vous file la partie de ma macro concernée.
Sheets("Calcul").Select
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets("Calcul").Range(Cells(6, 4), Cells(LignesTableau, 4)), PlotBy _
:=xlColumns
' En fait quand je fais Range("D6:D125") ca marche nickel sauf qu'il n'y aura pas toujours de données jusque la case 125
ActiveChart.SeriesCollection(1).XValues = "=Calcul!R6C1:R125C1"
ActiveChart.Location Where:=xlLocationAsNewSheet
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Analyse des Ecarts"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Sous Chapitres"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Heures"
End With
grosboufLG
Messages postés17Date d'inscriptionmercredi 17 janvier 2007StatutMembreDernière intervention16 juillet 2009 30 juin 2009 à 12:00
Merci bigfish,
Mais en fait je l'ai l'info qui me dit ou est ma dernière ligne ( c'est ma variable LignesTableau ). Le problème que j'ai c'est au niveau de la syntaxe du Range ou peut-être même pas du Range, je sais pas d'ou vient l'erreur.
En fait quand j'écris ce que je te mets ci-dessous ça marche pas, il doit y avoir une autre syntaxe à utiliser.
Et pareil, comment dois-je transcrire l'info en fonction de ma variable LignesTableau pour cette commande :
ActiveChart.SeriesCollection(1).XValues = "=Calcul!R6C1:R125C1"
Je voudrais faire en sorte de remplacer le 125 par LignesTableau (parce que le 125 marche dans un exemple ou j'ai 125lignes mais pas dans les autres cas)