[résolu] Génération de graphique Excel, problème de location

Génération de graphique Excel, problème de location [résolu] - VB/VBA/VBS - Programmation

Marsh Posté le 08-05-2007 à 19:40:46    

Ô rage Ô desespoir !!
 
Bonjour a tous,
J'expose mon petit problème qui me prend la tete depuis bientot 2h :(
Je voudrais afficher un graphique selon les coordonnées qui sont sur une plage de cellules. Jusqu'ici tout va bien, j'ai reussi a créer le graphique que je souhaitais.
Maintenant, je voudrais inclure ce graphique en tant qu'objet dans un classeur excel et non en tant que nouveille feuille.
J'ai lu plusieurs post et utilise la syntaxe en gras. Cependant rien n'y fait :(, erreur a l'execution :
 
"La méthode Location de l"objet '_Chart' a échoué"
 
Je ne sais pas si ca vient vraiment de la méthode loc. si vous pouviez me donner un ti coup de main ;)
merci
 

Code :
  1. Charts.Add
  2. ActiveChart.ChartType = xlXYScatter
  3. ActiveChart.SetSourceData Source:=Sheets(nom).Range(Sheets(nom).Cells(3, 7), Sheets(nom).Cells(Sheets(nom).Cells(2, 4) + 2, 8)), PlotBy _
  4.             :=xlColumns
  5.        
  6. ActiveChart.SeriesCollection(1).name = "=""Barycentres"""
  7. ActiveChart.Location where:=xlLocationAsObject, name:="Sheet1"
  8. With ActiveChart
  9.             .HasTitle = True
  10.             .ChartTitle.Characters.Text = "Déplacement des barycentres"
  11.             .Axes(xlCategory, xlPrimary).HasTitle = False
  12.             .Axes(xlValue, xlPrimary).HasTitle = False
  13. End With


Message édité par brolouille le 08-05-2007 à 20:51:05
Reply

Marsh Posté le 08-05-2007 à 19:40:46   

Reply

Marsh Posté le 08-05-2007 à 19:51:46    

Bonsoir,
Je pense qu'il faut activer la feuille de destination avant l'insertion du graphique.
Bon courage ...


Message édité par Thierry_94 le 08-05-2007 à 19:57:12
Reply

Marsh Posté le 08-05-2007 à 19:59:43    

un petit charts.add.activate ?

Reply

Marsh Posté le 08-05-2007 à 20:17:12    

il faut selectionner la feuille et surtout une cellule
 
es tu sur de ton range ? il me parait bizarre


Message édité par ingenieurcesi le 08-05-2007 à 20:18:08
Reply

Marsh Posté le 08-05-2007 à 20:21:53    

Bonsoir,
"sheet1" existe?
Cordialement

Reply

Marsh Posté le 08-05-2007 à 20:39:48    

En fait quand je vire cette ligne :  

Code :
  1. ActiveChart.Location where:=xlLocationAsObject, name:="Sheet1"


 
le graphe se met sur une nouvelle feuille du classeur, et tout est nickel, la forme, les options et tout ca.
Mais des que je veux l'inserer en tant qu'objet, ca bug.
 
J'ai essaye :  
charts.add.activate, sans succes
selection d'une feuille avant l'insertion, sans succes
 
"sheet1" est je pense juste le nom de l'objet que je souhaite creer. j'ai essaye d'appeler la fonction sans cet argument mais sans succes encore une fois
 
ps: pour info je travaille avec visual basic 6.3


Message édité par brolouille le 08-05-2007 à 20:41:28
Reply

Marsh Posté le 08-05-2007 à 20:48:58    

Tu avais raison seniorpapou. J'ai continuer mes recherches et en effet, le paramètre name demandé est le nom de la feuille dans laquelle insérer l'objet. Sheet1 n'existait pas...
 
Le bon code au final est donc celui ci:

Code :
  1. Dim nom As String
  2. nom = ActiveSheet.name
  3. Charts.Add
  4. ActiveChart.ChartType = xlXYScatter
  5.      
  6. ActiveChart.SetSourceData Source:=Sheets(nom).Range(Sheets(nom).Cells(3, 7), Sheets(nom).Cells(Sheets(nom).Cells(2, 4) + 2, 8)), PlotBy _
  7.                  :=xlColumns
  8. ActiveChart.SeriesCollection(1).name = "=""Barycentres"""
  9. ActiveChart.Location where:=xlLocationAsObject, name:=nom
  10. With ActiveChart
  11.                  .HasTitle = True
  12.                  .ChartTitle.Characters.Text = "Déplacement des barycentres"
  13.                  .Axes(xlCategory, xlPrimary).HasTitle = False
  14.                  .Axes(xlValue, xlPrimary).HasTitle = False
  15. End With


Message édité par brolouille le 08-05-2007 à 20:49:53
Reply

Sujets relatifs:

Leave a Replay

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