Délier graphique de sa source vba

Bolou

XLDnaute Nouveau
Bonjour à tous!

J'ai créer un graphique avec un code VBA. Je voudrais la délier du tableau source dès que le graphique est créer.

Mon objectif étant que chaque fois que j'appuie mon bouton commande la nouvelle courbe créée s'ajoute au graphique existant!

Quelqu'un peut-il m'aider? Ci après mon bout de code

ub graph_1()

Dim dl As Long, c As Range
dl = Sheets("Graphe").Range("A" & Rows.Count).End(xlUp).Row

Set c = Sheets("Graphe").Range("A2:B" & dl)

ActiveSheet.Shapes.AddChart2(240, xlXYScatterLinesNoMarkers).Select
ActiveChart.SetSourceData Source:=c


'End With

End Sub


Je vous remercie de vos réponses!

Osée4:6 : Mon Peuple péri parce qu'il lui manque la connaissance!
 

CBernardT

XLDnaute Barbatruc
Re : Délier graphique de sa source vba

Bonjour Bolou,

Si j'ai bien compris, il suffit de supprimer le graphe en place puis recréer le nouveau graphe avec les données actualisées.

Sub graph_1()
Dim dl As Long, c As Range

With Sheets("Graphe")
' Efface le graphe précédent
On Error Resume Next
.ChartObjects.Delete
On Error GoTo 0
' Création du nouveau graphe
dl = .Range("A" & Rows.Count).End(xlUp).Row
Set c = .Range("A2:B" & dl)
.Shapes.AddChart2(240, xlXYScatterLinesNoMarkers).Select
ActiveChart.SetSourceData Source:=c
End With
End Sub
 

Modeste geedee

XLDnaute Barbatruc
Re : Délier graphique de sa source vba

bonsour®

par macro je ne sais plus ... :(

mais ...:rolleyes:

quand la macro à été exécutée , reprendre la main
clicker sur la courbe souhaitée
la formule =SERIE(etc...) s'affiche dans la barre de formule
mettre le curseur dans la barre de formule
appuyer Une fois sur F9

la serie est alors remplacée par la matrice des valeurs correspondantes !!!

c'est tout
:rolleyes:
 
Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Re : Délier graphique de sa source vba

Bonsour®

voir les questions similaires en bas de cette page

notament :
https://www.excel-downloads.com/threads/deconnecter-un-graphique-de-sa-source.204843/

et paticulièrement :
- La même opération est réalisée aisément par macro en utilisant
SeriesCollection(1).Name = SeriesCollection(1).Name
SeriesCollection(1).Values = SeriesCollection(1).Values
SeriesCollection(1).XValues = SeriesCollection(1).XValues

Les dernières méthodes se heurtent à une difficulté liée au fait que l'espace dans lequel sont stockées les données sous forme de matrice est limité.
Au delà d'un certain volume de données, Excel cale et ne peut afficher le graphique.
Le problème est amplifié quand les données proviennent d'un calcul et contiennent beaucoup de décimales.
J@C
 

Bolou

XLDnaute Nouveau
Re : Délier graphique de sa source vba

Bonjour à tous et merci pour vos réponses,

Je vous joins un fichier "light" de mon projet et vous l'explique un peu.

En gros j'ai une base de données que j'enregistre chaque semaine (Qui n'est pas dans ce fichier)....
Bref, en fonction des critères choisis dans la feuille DV (A2, B2,C2,D2,E2, H1, H2) en appuyant sur le bouton graphique, il y a

1) un tri de la base de données qui se fait dans DB,
2) Ce la base triée est copiée et collée sur la feuille graphe (qui sera cachée à l'utilisateur)
3) Le graphique est ensuite éditée avec les données de la feuille graphe.
4) Le filtre de la base DB est par la suite annulé

Problème: Mon objectif étant de faire des comparaisons de données par à partir des courbes, j'aimerais conserver la courbe existante, faire un nouveau tri pour la même période et en appuyant à nouveau sur "graphique", ajouté la nouvelle courbe. De sortes à avoir plusieurs courbes sur le même graphique.

Je ne sais pas comment m'y prendre parce que chaque fois que j'ai un nouveau tri les données sur la feuille graphe change et une nouvelle courbe est émise!!!!

Merci pour l'éclaircissement que vous apportez à mon incrédulité!!!
 

Pièces jointes

  • Gou_V.0.xlsm
    292.5 KB · Affichages: 31

Discussions similaires

Statistiques des forums

Discussions
312 490
Messages
2 088 881
Membres
103 981
dernier inscrit
vinsalcatraz