Abscisses d'histogramme à plusieurs range variables
Antoine
-
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Contexte :
Je rencontre un problème sur l'axe des abscisses d'un histogramme.
Pour simplifier : J'ai un tableau de 12 lignes et plusieurs colonnes.
la première colonne comprend les mois de l'année de Janvier à Décembre.
Toutes les autres colonnes comprennent chacune 12 entiers quelconques, chaque colonne représentant donc une année.
Mes histogrammes représentent les valeurs en fonction du temps.
Lorsqu'on utilise le programme, on peut demander une plage de valeur à cheval sur deux année : par exemple du 01/05/2018 au 30/04/2019.
Lorsque j'affecte les valeurs en ordonnées, j'utilise :
Cela fonctionne sans problèmes.
Problème :
Par contre, j'ai un problème, sur mes abscisses, où j'utilise :
Mon problème est que : dans l'exemple des dates enoncées au dessus : je demande de début Mai à fin Avril.
Donc je veux que le premier de mes 12 bâtons de l'histogramme soit Mai, et que logiquement, j'ai l'ordre :
Mai, Juin, Juillet, Août, Septembre, Octobre, Novembre, Décembre, Janvier, Février, Mars, Avril.
Mais en réalité, Excel me colle les valeurs dans l'ordre souhaité mais les abscisses s'étendent de Janvier à Décembre, et non de Mai à Avril.
Le problème ne se pose pas sur les valeurs, puisque je fais l'union de ligne consécutives, mais sur des colonnes différentes. Cela dit, mon abscisse elle, utilise toujours la même colonne. Et quand vous faites par exemple, l'union de Union(( A5 -> A12), (A1->A4)) et bien Excel comprend (A1 -> A12). Ainsi Excel me représente les valeurs de Mai à avril, sur une abscisse de Janvier à Décembre.
Pourtant j'ai fait des test sur excel, et quand je construis un histogramme manuellement, Excel me met les mois dans l'ordre, mais pas sur VBA....
Question :
J'ai déjà des idées de bricolage mais je suis sûr qu'il y a moyen de faire autrement ou d'utiliser une autre fonction que Union....
Si quelqu'un à une idée je suis preneur.
PS :
-Ne faites pas attention aux variables que j'utilise dans les extraits de code, aucun problème ne vient de là.
-J'imagine que mes lignes sont "optimisables" en terme de taille, mais cela est d'aucune importance pour moi donc ne perdez pas de temps avec ça.
Contexte :
Je rencontre un problème sur l'axe des abscisses d'un histogramme.
Pour simplifier : J'ai un tableau de 12 lignes et plusieurs colonnes.
la première colonne comprend les mois de l'année de Janvier à Décembre.
Toutes les autres colonnes comprennent chacune 12 entiers quelconques, chaque colonne représentant donc une année.
Mes histogrammes représentent les valeurs en fonction du temps.
Lorsqu'on utilise le programme, on peut demander une plage de valeur à cheval sur deux année : par exemple du 01/05/2018 au 30/04/2019.
Lorsque j'affecte les valeurs en ordonnées, j'utilise :
ActiveChart.FullSeriesCollection(1).Values = Union(WDJUfichier.Worksheets("DJU chauffagiste").Range(WDJUfichier.Worksheets("DJU chauffagiste").Cells(lignemois1A, Colannee1A), WDJUfichier.Worksheets("DJU chauffagiste").Cells(lignetotalA - 1, Colannee1A)), WDJUfichier.Worksheets("DJU chauffagiste").Range(WDJUfichier.Worksheets("DJU chauffagiste").Cells(lignestationA + 2, Colannee2A), WDJUfichier.Worksheets("DJU chauffagiste").Cells(lignemois2A, Colannee2A)))
Cela fonctionne sans problèmes.
Problème :
Par contre, j'ai un problème, sur mes abscisses, où j'utilise :
ActiveChart.FullSeriesCollection(1).XValues = Union(WDJUfichier.Worksheets("DJU chauffagiste").Range(WDJUfichier.Worksheets("DJU chauffagiste").Cells(lignemois1A, coltotalA), WDJUfichier.Worksheets("DJU chauffagiste").Cells(lignetotalA - 1, coltotalA)), WDJUfichier.Worksheets("DJU chauffagiste").Range(WDJUfichier.Worksheets("DJU chauffagiste").Cells(lignestationA + 2, coltotalA), WDJUfichier.Worksheets("DJU chauffagiste").Cells(lignemois2A, coltotalA)))
Mon problème est que : dans l'exemple des dates enoncées au dessus : je demande de début Mai à fin Avril.
Donc je veux que le premier de mes 12 bâtons de l'histogramme soit Mai, et que logiquement, j'ai l'ordre :
Mai, Juin, Juillet, Août, Septembre, Octobre, Novembre, Décembre, Janvier, Février, Mars, Avril.
Mais en réalité, Excel me colle les valeurs dans l'ordre souhaité mais les abscisses s'étendent de Janvier à Décembre, et non de Mai à Avril.
Le problème ne se pose pas sur les valeurs, puisque je fais l'union de ligne consécutives, mais sur des colonnes différentes. Cela dit, mon abscisse elle, utilise toujours la même colonne. Et quand vous faites par exemple, l'union de Union(( A5 -> A12), (A1->A4)) et bien Excel comprend (A1 -> A12). Ainsi Excel me représente les valeurs de Mai à avril, sur une abscisse de Janvier à Décembre.
Pourtant j'ai fait des test sur excel, et quand je construis un histogramme manuellement, Excel me met les mois dans l'ordre, mais pas sur VBA....
Question :
J'ai déjà des idées de bricolage mais je suis sûr qu'il y a moyen de faire autrement ou d'utiliser une autre fonction que Union....
Si quelqu'un à une idée je suis preneur.
PS :
-Ne faites pas attention aux variables que j'utilise dans les extraits de code, aucun problème ne vient de là.
-J'imagine que mes lignes sont "optimisables" en terme de taille, mais cela est d'aucune importance pour moi donc ne perdez pas de temps avec ça.
Configuration: Windows / Chrome 80.0.3987.122
A voir également:
- Abscisses d'histogramme à plusieurs range variables
- Out of range - Forum Ecran
- Vba range avec variable ✓ - Forum VB / VBA
- Range avec une Variable ✓ - Forum VB / VBA
- Out of range écran ✓ - Forum Matériel & Système
- Input signal out of range - Forum Matériel & Système