Abscisses d'histogramme à plusieurs range variables

Fermé
Antoine - 3 mars 2020 à 18:56
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 - 4 mars 2020 à 21:37
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 :

 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

1 réponse

ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
4 mars 2020 à 21:37
Bonjour

Un exemple
https://mon-partage.fr/f/mK14zE93/

Cdlmnt
0