Créer un graphique avec des données sources variables

Créer un graphique avec des données sources variables - VB/VBA/VBS - Programmation

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 !  :p

Reply

Marsh Posté le 01-12-2008 à 18:05:45   

Reply

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

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed