[XL 2010-VBA] Données sources graphique variables
Résolu
SpcCwb
-
skk201 Messages postés 942 Date d'inscription Statut Membre Dernière intervention -
skk201 Messages postés 942 Date d'inscription Statut Membre Dernière intervention -
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!
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!
A voir également:
- [XL 2010-VBA] Données sources graphique variables
- Fuite données maif - Guide
- Changer carte graphique - Guide
- Clé activation office 2010 gratuit - Télécharger - Sécurité
- Supprimer les données de navigation - Guide
- Word 2010 - Télécharger - Traitement de texte
2 réponses
Sans VBA :
Tu peux utiliser la formule décaler pour définir la plage des données.
Dans ton exemple-image :
*Pensez mettre vos messages en [Résolu] et cliquer sur le + des conseil qui vous ont été utils"
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"
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é.
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()End Sub
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
J'ai essayé la fonction que tu m'as donnée dans Plage de données du graphique: Fonction non valide...
Merci!
Et c'est parce que je me suis trompé il faut plutot utilsié la formule =SERIE() avec des plages nomées que tu définis avec la fonction =DECALER()
Petites explication : http://www.excelabo.net/excel/series_nommees_graphique
Le hic, c'est que lorsque l'on choisi la source des données du graphique on a le choix :
- soit de sélectionner une zone entière (titre du graphique, axe X, axe Y numéro 1,2,3...) et de s'en remettre à la grâce de Dieu,
- soit on défini la source de données pour l'axe des abscisses, et ensuite on définit la source de données de chaque série Y.
J'ai essayé la première solution, ce fût un échec cuisant. La deuxième solution fonctionne avec tes formules, pour peux que je paramètre à l'avance toutes les séries Y qui pourraient être utilisées, ce qui n'est pas dans mon intention.
Je m'y prends peut être mal (sûrement même ^^), une autre idée peut être?
Tu as bien suivis les étapes décrites dans le lien ?
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.