graphique excel en macro

graphique excel en macro - VB/VBA/VBS - Programmation

Marsh Posté le 16-06-2006 à 08:52:34    

Bonjour,
Je souhaite créer une macro excel qui me genere automatiquement un graphe a partir de deux colonnes.
La premiere en valeur de l' abscisse et la seconde comme valeurs pour la courbe
Donc je lai fait par excel et je lai enregistré par macro.
J'obtiens le graphe suivant :
http://dirtyalex.ifrance.com/courbevoulu.JPG
Jai recopié le code de la macro enregistrée et je lai mis ds ma macro
Le graphe se créée mais plusieurs pb surviennent lors de la création dont un message d'erreur du compilateur:
Erreur d'éxécution 438
Propriété ou méthode non généré par cet objet

La courbe apparait mais les valeurs de l'abscisse ne correspondent pas  
ils commencent à 1 alors que mes valeurs ds ma premiere colonne commence à 6  
Les titres et la mise en forme du graphe ne fonctionne pas, Voila ce que j'obtiens :
http://dirtyalex.ifrance.com/courbeobtenu.JPG
 
Voici le code utilisé:
 

Code :
  1. Range("A2:B" & (Count + 1)).Select
  2.     Charts.Add
  3.     ActiveChart.ChartType = xlLineMarkers
  4.     ActiveChart.SetSourceData Source:=NewSheet.Range("A2:B" & (Count + 1)), PlotBy _
  5.         :=xlColumns
  6.     ActiveChart.SeriesCollection(1).Delete
  7.     ActiveChart.SeriesCollection(1).XValues = "=" & NewSheet & "!R2C1:R" & (Count + 1) & "C1"
  8.     ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="GraphTest"
  9.    
  10.     With ActiveChart
  11.         .HasTitle = True
  12.         .ChartTitle.Characters.Text = "Courbe pour..."
  13.         .Axes(xlCategory, xlPrimary).HasTitle = True
  14.         .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Heures"
  15.         .Axes(xlValue, xlPrimary).HasTitle = True
  16.         .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = _
  17.         "Temps en ms"
  18.     End With
  19.    
  20.     With ActiveChart.Axes(xlCategory)
  21.         .HasMajorGridlines = True
  22.         .HasMinorGridlines = False
  23.     End With
  24.    
  25.     With ActiveChart.Axes(xlValue)
  26.         .HasMajorGridlines = True
  27.         .HasMinorGridlines = False
  28.     End With
  29.    
  30.     ActiveChart.HasLegend = False
  31.     ActiveChart.HasDataTable = False
  32.     Application.WindowState = xlMaximized
  33.     ActiveChart.PlotArea.Select
  34.    
  35.     With Selection.Border
  36.         .ColorIndex = 19
  37.         .Weight = xlThin
  38.         .LineStyle = xlContinuous
  39.     End With
  40.    
  41.     With Selection.Interior
  42.         .ColorIndex = 15
  43.         .PatternColorIndex = 1
  44.         .Pattern = xlSolid
  45.     End With
  46.    
  47.     ActiveChart.Axes(xlCategory).MajorGridlines.Select
  48.     ActiveChart.ChartArea.Select
  49.     ActiveChart.SeriesCollection(1).Select
  50.    
  51.     With Selection.Border
  52.         .ColorIndex = 57
  53.         .Weight = xlThick
  54.         .LineStyle = xlContinuous
  55.     End With
  56.    
  57.     With Selection
  58.         .MarkerBackgroundColorIndex = xlAutomatic
  59.         .MarkerForegroundColorIndex = xlAutomatic
  60.         .MarkerStyle = xlDiamond
  61.         .Smooth = False
  62.         .MarkerSize = 9
  63.         .Shadow = False
  64.     End With
  65.    
  66.     ActiveWindow.Zoom = 70
  67.     ActiveWindow.Zoom = 85
  68.     ActiveChart.PlotArea.Select
  69.    
  70.     With Selection.Border
  71.         .ColorIndex = 19
  72.         .Weight = xlThin
  73.         .LineStyle = xlContinuous
  74.     End With
  75.    
  76.     Selection.Interior.ColorIndex = xlNone
  77.    
  78.     With Selection.Border
  79.         .Weight = xlThin
  80.         .LineStyle = xlAutomatic
  81.     End With
  82.    
  83.     Selection.Interior.ColorIndex = xlNone
  84.     ActiveChart.Axes(xlCategory).MajorGridlines.Select
  85.    
  86.     With Selection.Border
  87.         .ColorIndex = 48
  88.         .Weight = xlHairline
  89.         .LineStyle = xlContinuous
  90.     End With
  91.    
  92.     ActiveChart.PlotArea.Select
  93.     ActiveChart.ChartArea.Select


     
je ne sais pas sil faut que je declare des elements pour le graphe si oui lesquels (ma variable count a bien été déclarée) et dou vient mon pb pour laxe des abscisses  
Merci d'avance si qqun peut maider  
 
Alex

Reply

Marsh Posté le 16-06-2006 à 08:52:34   

Reply

Marsh Posté le 16-06-2006 à 17:07:59    


......
Dim newsheet As Worksheet
    Set newsheet = ActiveWorkbook.Worksheets.Add
    ......
 
    ActiveChart.SeriesCollection(1).XValues = "=" & newsheet.Name & "!R2C1:R" & (count + 1) & "C1"
 
    ......
 

Message cité 1 fois
Message édité par kiki29 le 16-06-2006 à 17:09:20
Reply

Marsh Posté le 20-06-2006 à 08:52:38    

kiki29 a écrit :


......
Dim newsheet As Worksheet
    Set newsheet = ActiveWorkbook.Worksheets.Add
    ......
 
    ActiveChart.SeriesCollection(1).XValues = "=" & newsheet.Name & "!R2C1:R" & (count + 1) & "C1"
 
    ......
 



 
merci  :)

Reply

Marsh Posté le 22-08-2006 à 05:56:24    

Salut, j'ai aussi un probleme avec les graphiques.
 
Je dois faire un programme qui fais une courbe pour telle ou telle feuille de données (ce sont des données météorologiques, 12 mois x 30 ans x 61 stations = beaucoup beaucoup de graphiques...). J'apprends tout seul VBA pour excel, d'où mon probleme. Ma question est assez simple, je me débrouillerai ensuite:
 
Quelle est la syntaxe pour faire un graphique (type nuage de points) en fonction de deux colonnes ?
 
Merci d'avance pour l'aide, je galère vraiment là (et il ne me reste que quelques jours, d'où l'urgence...)

Reply

Marsh Posté le 22-08-2006 à 07:54:10    

Macro recorder et Aide en ligne

Reply

Sujets relatifs:

Leave a Replay

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