Macro graphique/tableau variable [resolu]

totaljim

XLDnaute Nouveau
Bonjour,

Je suis en train de faire une macro et je suis bloqué sur un point.
Je récupère actuellement des données de plusieurs fichiers que je moyenne et place dans un fichier récap.
J'aimerais maintenant afficher un graphique 2colonnes en fonction d'une 3eme.
Le soucis c'est que le nombre de ligne à traitées est variable (en fonction d'une valeur entrée par l'utilisateur au début du process).
Quelqu'un aurait il la bonne synthaxe svp ?

Merci d'avance,

Totaljim
 
Dernière édition:

Gurgeh

XLDnaute Occasionnel
Re : Macro graphique/tableau variable

Salut totaljim,

Il faudrait que tu sois plus explicite sur ta demande (avec un fichier exemple...)

Comme ça, au débotté, je te suggèrerai de créer une plage nommée qui servirait de support à ton graphique, et de rendre la définition de cette plage dynamique (en général avec la fonction DECALER) pour prendre en compte le fait qu'elle dépend d'un paramètre...

Gurgeh
 

totaljim

XLDnaute Nouveau
Re : Macro graphique/tableau variable

Salut Gurgeh,

voila un exemple. Le but étant de réaliser le graphique par macro !
Là, j'ai mis 5 lignes mais c'est variable.

Aurais tu un exemple de code de ce que tu m'expliques par hasard stp ?
 

Pièces jointes

  • exemple.xlsm
    26.6 KB · Affichages: 39
  • exemple.xlsm
    26.6 KB · Affichages: 42
  • exemple.xlsm
    26.6 KB · Affichages: 38

totaljim

XLDnaute Nouveau
Re : Macro graphique/tableau variable

Bon alors j'ai essayé de faire un truc en fonction de ce que j'ai cru comprendre mais ca ne fonctionne pas

' Graphique '
rang = ActiveSheet.UsedRange.Rows.Count
Dim Tableau(1, 100)
Dim Tablo(5)


'Création du tableau pour les Ordonnées

For i = 4 To rang
Tableau(0, i - 4) = Range("B" & i)
Next i
For i = 4 To rang
Tableau(1, i - 4) = Range("F" & i)
Next i

'Création d'un tableau pour les Abscisses
For i = 4 To rang
Tablo(i - 4) = Range("A" & i)
Next i

'Création graphique
Charts.Add
'Définit la localisation du graphique:
'dans la feuille de calcul Feuil1 pour cet exemple
ActiveChart.Location _
Where:=xlLocationAsObject, Name:="Feuil1"

'Ajoute une série dans le graphique
With ActiveChart
.SeriesCollection.NewSeries
.SeriesCollection(1).XValues = Tablo() 'Abscisses
.SeriesCollection(1).Values = Tableau() 'Ordonnées
'Définit le type (Courbe)
.ChartType = xlLine
End With

Je ne peux pas mettre de variable lors de la définition de mon tableau (ex : Dim tableau(rang)) ni même ne rien mettre dans la paranthèse ! Pourquoi ?
Le graphique qu'il m'affiche (en ayant rempli les paranthèse des définitions de mes tableaux aléatoirement) ne correspond à rien.
Quelqu'un peut il m'aider svp ?

Totaljim
 

totaljim

XLDnaute Nouveau
Re : Macro graphique/tableau variable

Quelqu'un ?

'Création du tableau pour les Ordonnées

For i = 4 To rang
Tableau(i - 4) = Range("B" & i)
Next i
For i = 4 To rang
Tableau2(i - 4) = Range("F" & i)
Next i

'Création d'un tableau pour les Abscisses
For i = 4 To rang
Tablo(i - 4) = Range("A" & i)
Next i

'Création graphique
Charts.Add
'Définit la localisation du graphique:
'dans la feuille de calcul Feuil1 pour cet exemple
ActiveChart.Location _
Where:=xlLocationAsObject, Name:="Feuil1"

'Ajoute une série dans le graphique
With ActiveChart
.SeriesCollection.NewSeries
.SeriesCollection(1).XValues = Tablo() 'Abscisses
.SeriesCollection(1).Values = Tableau() 'Ordonnées
'Définit le type (Courbe)
.ChartType = xlLine
End With

Quand je fais ca ca marche bien que les plage de données de mes tableaux soient fixes (et j'aimerais qu'elles soient variables) et je n'arrive pas a insérer de deuxieme série sur le meme graphique !
merci de votre aide

TotalJim
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Macro graphique/tableau variable

Bonjour TotalJim

un exemple ( sans macro) à adapter en ajoutant éventuellement un second ascenseur

à+
Philippe
 

Pièces jointes

  • 111.xlsx
    14.9 KB · Affichages: 29
  • 111.xlsx
    14.9 KB · Affichages: 23
  • 111.xlsx
    14.9 KB · Affichages: 25

totaljim

XLDnaute Nouveau
Re : Macro graphique/tableau variable

Bonjour merci phlaurent55,
ton truc m'a l'air bien cool mais je vois pas trop comment traduire ca en macro ^^
Bon alors j'arrive à faire mon graphe (ça c'est plutot bien) mais le problème c'est que ca continue de ma rajouter des séries sur mon graphe dont je ne sais d'où elles sortent

' Connaitre nombre de lignes actives '
rang = ActiveSheet.UsedRange.Rows.Count

' Supprimer ancien graph '
For Each LeGraphe In ActiveSheet.ChartObjects
LeGraphe.Delete
Next

' Ajouter nouveau graph '
ActiveSheet.Shapes.AddChart.Select
With ActiveChart
.ChartType = xlLine
.SeriesCollection.NewSeries
.SeriesCollection(1).Name = "='Feuil1'!$B$1:$B$2"
.SeriesCollection(1).Values = "='Feuil1'!$B$4:$B" & rang
.SeriesCollection(1).XValues = "='Feuil1'!$A$4:$A" & rang
.SeriesCollection.NewSeries
.SeriesCollection(2).Name = "='Feuil1'!$F$1:$F$2"
.SeriesCollection(2).Values = "='Feuil1'!$F$4:$F" & rang
.SeriesCollection(2).XValues = "='Feuil1'!$A$4:$A" & rang

Je lui demande pourtant bien que 2 séries !!
Quelqu'un sait il pouquoi ?
 

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 902
Membres
103 982
dernier inscrit
krakencolas