2013-02-15 3 views
1

Je suis actuellement en train d'essayer de remplir un graphique avec des données où l'utilisateur peut simplement appuyer sur le bouton de la feuille de calcul. Le problème que j'ai est que j'ai besoin du bouton pour copier des données à une feuille de données, puis le tableau va remplir à partir de la feuille de données. Je peux le faire, mais je besoin d'une nouvelle série créée sur le graphique pour toutes les nouvelles données qui est EnteExcel 2010 VBA .. Ajout de séries à un graphique existant

Sub RoundedRectangle2_Click() 

End Sub 


Sub MAPS() 
Sheets("MAPS_FORM").Range("e47").Copy 
Sheets("Data_Sheet").Range("b65536").End(xlUp).Offset(1, 0).PasteSpecial _ 
Paste:=xlPasteValues 
Application.CutCopyMode = False 
Sheets("MAPS_FORM").Range("d2").Copy 
Sheets("Data_Sheet").Range("a65536").End(xlUp).Offset(1, 0).PasteSpecial _ 
Paste:=xlPasteValues 
Application.CutCopyMode = False 



Sheets("Data_Sheet").Range("b2:b46").Copy 
Charts("Chart1").SeriesCollection.Paste 

Range("e6:i8").ClearContents 
Range("e12:i19").ClearContents 
Range("e23:i27").ClearContents 
Range("e31:i36").ClearContents 
Range("e40:i43").ClearContents 
Range("d2").ClearContents 
Sheets("Data_Sheet").Select 
End Sub 

Répondre

0

changer simplement la propriété .SetSourceData après avoir ajouté les données.

Prenons un exemple

Disons que vous des données est de A1:A5 et le graphique est basé sur cette plage. Voir capture d'écran ci-dessous

enter image description here

Maintenant, supposons que vos données ajoutée est de B1:B5 et veulent que montrer comme une série dans le tableau, puis il suffit d'utiliser ce code

Option Explicit 

'~~> Please amend the code as applicable 
Sub Sample() 
    Dim objChrt As ChartObject 
    Dim chrt As Chart 

    Set objChrt = ActiveSheet.ChartObjects("Chart 1") 
    Set chrt = objChrt.Chart 

    With chrt 
     .SetSourceData (ActiveSheet.Range("A1:B5")) 
    End With 
End Sub 

Lorsque vous exécutez le code de la le graphique montrera automatiquement la nouvelle série.

enter image description here

+0

Merci pour la réponse. Je vais devoir vérifier et essayer le lundi pour voir si je peux le faire fonctionner pour moi. –

+0

Ce que je cherche à faire est chaque fois que le bouton est cliqué, un nouvel ensemble de données est copié dans la Data_Sheet qui est ensuite entré dans le tableau comme une nouvelle série basée sur le nom de la série étant la date et le point de données nombre. –

+0

C'est ce que fait le code. changez simplement 'SetSourceData' après avoir entré les nouvelles données dans la feuille. –