Créer un graphique avec des données sources variables - VB/VBA/VBS - Programmation
Marsh Posté le 01-12-2008 à 18:56:28
Réponse trouvée par ailleurs.
La voici, si ça intéresse quelqu'un :
Dim var1 As Byte, var2 As Byte
var1 = 3
var2 = 6
dim yaPlage as range
Dim yaCh as chart
set yaPlage = sheets("Feuil2" ).Cells(2, var1).CurrentRegion.Offset(1, 0).Resize(Rows.Count - 1).Resize(var2 - 1, 2)
Set yaCh = Charts.Add
yaCh.ChartType = xl3DPie
yaCh.SetSourceData Source:=yaPlage, PlotBy:= _
xlColumns
yaCh.Location Where:=xlLocationAsObject, Name:="Feuil1"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "titre"
End With
Marsh Posté le 01-12-2008 à 18:05:45
Bonjour à tous.
Après avoir pas mal cherché, sans succès, une solution à mon problème, je viens vous l'exposer (je code sous excel 2002).
J'aimerais afficher un graphique par macro, dont les composantes sont laissées au choix de l'utilisateur. Mon projet comprend donc 3 phases:
Macro 1: Récupération et agrégation des données choisie par l'utilisateur
Macro 2: Création du graphique à partir des données agrégées
Macro 3: Affichage du graphique dans un userform
Les macro 1 et 3 fonctionnent parfaitement.
Cependant je bloque sur la macro 2.
Pour la réaliser je me suis inspirer de l'enregistreur de macro, qui donne le code suivant:
Charts.Add
ActiveChart.ChartType = xl3DPie
ActiveChart.SetSourceData Source:=Sheets("Feuil1" ).Range("C2:D6" ), PlotBy:= _
xlColumns
Etant donné que ma plage de donnée est variable, j'ai voulu remplacer le code en rouge (Range...) par ma plage de donnée variable.
J'ai essayé une centaine de solution différente, et je pense avoir réussi à en trouver une satisfaisante, la voici:
http://andre.peltier2.free.fr/autr [...] eur438.jpg
Je tiens à signaler qu'avec ce code, mon graphique est créé, exactement comme je le désire. (enfin presque, car avec ce code il est créé sur une nouvelle feuille, et je souhaiterais qu'il soit créé sur la feuille courante).
Cependant, à cause de l'erreur, mon application est bloquée !
Je ne comprend pas pourquoi j'obtiens cette erreur, alors que la macro fonctionne !!!
Donc si vous avez une idée à me proposer, je vous remercie d'avance!
N'hésitez pas à me demander un complément d'information, si mon explication n'est pas suffisamment claire.
Merci d'avance !