[XL 2010-VBA] Données sources graphique variables
Résolu/Fermé
SpcCwb
-
Modifié par SpcCwb le 7/07/2014 à 09:48
skk201
skk201
- Messages postés
- 938
- Date d'inscription
- jeudi 11 septembre 2008
- Statut
- Membre
- Dernière intervention
- 16 octobre 2016
A voir également:
- [XL 2010-VBA] Données sources graphique variables
- [XL 2010-VBA] Données sources graphique variables ✓ - Forum - Excel
- Données source graphique excel depuis VBA ✓ - Forum - VB / VBA
- Changer les données sources d'un graphique de façon dynamique - Articles
- VBA Excel:créer graphique dans feuille donnée ✓ - Forum - VB / VBA
- Graphique VBA avec 2 colonnes variables et disjointes ✓ - Forum - VB / VBA
2 réponses
skk201
Modifié par skk201 le 7/07/2014 à 14:35
- Messages postés
- 938
- Date d'inscription
- jeudi 11 septembre 2008
- Statut
- Membre
- Dernière intervention
- 16 octobre 2016
Modifié par skk201 le 7/07/2014 à 14:35
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"
SpcCwb
8 juil. 2014 à 12:44
- Messages postés
- 65
- Date d'inscription
- mardi 7 mai 2013
- Statut
- Membre
- Dernière intervention
- 26 novembre 2020
8 juil. 2014 à 12:44
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
skk201
8 juil. 2014 à 13:16
- Messages postés
- 938
- Date d'inscription
- jeudi 11 septembre 2008
- Statut
- Membre
- Dernière intervention
- 16 octobre 2016
8 juil. 2014 à 13:16
Super :) C'est comme ça qu'on progresse :)
SpcCwb
8 juil. 2014 à 14:01
- Messages postés
- 65
- Date d'inscription
- mardi 7 mai 2013
- Statut
- Membre
- Dernière intervention
- 26 novembre 2020
8 juil. 2014 à 14:01
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!
Merci pour l'aide apportée skk201!
7 juil. 2014 à 14:52
J'ai essayé la fonction que tu m'as donnée dans Plage de données du graphique: Fonction non valide...
Merci!
Modifié par skk201 le 7/07/2014 à 14:56
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
7 juil. 2014 à 15:24
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?
7 juil. 2014 à 15:53
Tu as bien suivis les étapes décrites dans le lien ?
7 juil. 2014 à 16:26
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.