2010-10-10 12 views
1

Je veux représenter graphiquement le résultat de ma table dans Excel. voici le code que j'ai:Graphique dynamique dans Excel 2007

Sub bow() 
' 
' bow Macro 
' 

' 
Worksheets("Sheet3").Select 
tahX = Cells(3, 3).Value + 2 
Xval = Offset(A1, 1, 2, 1, 1) 
    ActiveSheet.Shapes.AddChart.Select 
    ActiveChart.SetSourceData Source:=Range("'Sheet3'!$12:$12,'Sheet3'!$10:$10") 
    ActiveChart.ChartType = xlXYScatter 
    ActiveChart.SeriesCollection(1).Name = "=""bowe""" 
    ActiveChart.SeriesCollection(1).XValues = "='Sheet3'!$12:$12" 
    ActiveChart.SeriesCollection(1).Values = "='Sheet3'!$10:$10" 
End Sub 

maintenant je veux limiter les valeurs X à la valeur qui est définie dans la cellule C3. Donc par exemple si C3 = 20, je veux qu'il n'utilise que les 20 premières valeurs dans le numéro de ligne 12. Comment puis-je faire cela?

Répondre

1

Sina, je ne sais pas exactement ce que votre problème est, mais dans cette ligne:

ActiveChart.SeriesCollection(1).XValues = "='Sheet3'!$12:$12" 

vous spécifiez la ligne 12 pour être plotted.Instead de 12 $:! $ 12 vous pouvez $ C $ 12: $ l 12 $ qui établira entre C3 et L12 .Si vous souhaitez définir la ligne que vous pouvez dynamiquement utiliser:

Set mcStartX = Worksheets(1).Cells(12, 3) 
startColX = mcStartX.Address() 
//we assume that in cell C3 we have specified number of cells to be plotted 
toAdd = Cells(3, 3).Value 
Set mcEndX = Worksheets().Cells(12, 2 + toAdd) 
endColX = mcEndX.Address() 

en utilisant ce code, et en supposant que vous avez 10 en C3, vous obtiendrez $ C $ 12 à partir de startColX et $ L $ 12 à partir de endColX.Le reste est simple, vous pouvez utiliser le code suivant:

ActiveChart.SeriesCollection(1).XValues = "='Sheet3'!" + startColX + ":" + endColX 

J'espère que cela pourrait être utile.

Cheers,