[XL 2010-VBA] Données sources graphique variables [Résolu/Fermé]

Signaler
-
Messages postés
938
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
16 octobre 2016
-
Bonjour CCM,

Je mets au point un outil pour enregistrer les commandes reçues en fonction du lieu de commande. Chaque lieu de commande à droit à son propre onglet et à son tableau de données.

Alors voici mon soucis. J'ai un onglet principal nommé "config", sur cet onglet on retrouve un graphe et un tableau servant de données sources au graph. J'ai également X autres onglets qui me servent à remplir le tableau permettant de tracer le graph de l'onglet "config".

Ce que j'aimerai, c'est que lorsque je change de lieu de commande pour remplir mon graph, celui change le range des sources de données. Je vous mets 2 screen pour que cela soit plus parlant.


J'ai lu quelque chose avec un Activechart.Setsource Data = ...

J'ai essayé de bidouiller quelque chose avec des xlDown et xlToRight, mais rien à faire, je n'ai pas la formule :/

Merci pour votre aide!

2 réponses

Messages postés
938
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
16 octobre 2016
51
Sans VBA :

Tu peux utiliser la formule décaler pour définir la plage des données.

Dans ton exemple-image :

=DECALER(D23;0;0;NBVAL($D:$D)-1;NBVAL($23:$23)-1)

*Pensez mettre vos messages en [Résolu] et cliquer sur le + des conseil qui vous ont été utils"
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
938
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
16 octobre 2016
51
C'est étrange si tu arrives à faire ça avec l'axe X ça devrait être exactement pareil.

Tu as bien suivis les étapes décrites dans le lien ?
Messages postés
65
Date d'inscription
mardi 7 mai 2013
Statut
Membre
Dernière intervention
26 novembre 2020
1
Oui oui, je suis point par point et j'adapte à mon cas.
J'ai réussi à créer mesX, mesY, et mestitresY (pour les étiquettes des séries), mais pas moyen de les utiliser dans le graphique. Je m'attendais à pouvoir définir mes séries Y comme j'ai fait avec les X mais Excel ne veut pas sous prétexte qu'il ne peut y avoir plusieurs colonnes ET lignes comme source d'UNE série.
Messages postés
938
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
16 octobre 2016
51
Quel type de graphique tu as ?

Essaye de voir ci ce lien peut t'aider : http://jacxl.free.fr/cours_xl/cours_xl_jac.html#gr_evolutif
Messages postés
65
Date d'inscription
mardi 7 mai 2013
Statut
Membre
Dernière intervention
26 novembre 2020
1
Haha j'ai déjà fait ce lien ^^

J'ai un histogramme empilé. Mais le plus simple c'est que tu accèdes au fichier lui-même.

Si tu as des questions n'hésite pas!

https://www.cjoint.com/?3GhqQWs8XGz
Messages postés
938
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
16 octobre 2016
51
Le fichier n'est plus disponible.
Messages postés
65
Date d'inscription
mardi 7 mai 2013
Statut
Membre
Dernière intervention
26 novembre 2020
1
Bon, j'ai réussi à faire ce que je voulais, voici le code pour ceux qui seraient amener à avoir les mêmes difficultés.

La manip ici ne passe pas par un changement de plage de données classique.
Je supprime mon graph, j'en recréé un que je nomme comme le précédent puis je me positionne sur la première cellule de mon tableau de données (D23), et je sélectionne l'ensemble de mes données avec Ctrl+Shift vers le bas puis vers la droite. Un petit copié, un petit collé après avoir sélectionné le graphique et le tour est joué.

Sub graph()
ActiveSheet.ChartObjects("Graphique 2").Activate
ActiveChart.Parent.Delete 'suppression du graph
Range("E3").Select
ActiveSheet.Shapes.AddChart.Select 'insertion nouveau graph
ActiveChart.ChartType = xlColumnStacked 'type d'histogramme
ActiveChart.Axes(xlCategory).CategoryType = xlCategoryScale 'étiquettes de l'axe des abscisses
With ActiveChart
.HasTitle = True
.Parent.Name = "Graphique 2" 'changer nom du graphique pour pouvoir réutiliser la macro
End With
ActiveSheet.ChartObjects("Graphique 2").Activate
Range("D23").Select 'sélection de ma plage de données
Range(Selection, Selection.End(xlDown)).Select 'idem
Range(Selection, Selection.End(xlToRight)).Select 'idem
Selection.Copy
ActiveSheet.ChartObjects("Graphique 2").Activate
ActiveChart.Paste 'insérer les données copiées au graphique
Application.CutCopyMode = False
End Sub
Messages postés
938
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
16 octobre 2016
51
Super :) C'est comme ça qu'on progresse :)
Messages postés
65
Date d'inscription
mardi 7 mai 2013
Statut
Membre
Dernière intervention
26 novembre 2020
1
C'est quand même bien pratique de pouvoir enregistrer les macros et de pouvoir les retravailler en direct ; )

Merci pour l'aide apportée skk201!