Ajustement abscisse automatique d'un graphique avec un filtre automatique

DEIDIER

XLDnaute Nouveau
Bonjour,

Je travaille sur une base de donnée avec un filtre automatique.
Je souhaiterai obtenir, pour chaque choix de filtre, plusieurs graphiques (correspondant aux données d'autres colonnes) dont les abscisses soient automatiquement ajustées en fonction du nombre de ligne obtenues (pour éviter d'avoir un graphique "compressé")

J'ai vérifié de bien avoir "Tracer les cellules visibles seulement" mais cela ne marche pas. Surement à cause du filtre automatique qui ne fait que masquer les lignes ne correspondant pas au choix.

Quelqu'un aurait il une idée ?

Merci d'avance

Deidier
 

MJ13

XLDnaute Barbatruc
Re : Ajustement abscisse automatique d'un graphique avec un filtre automatique

Bonjour Deider

Cela tombe bien , je suis dans une semaine Graphique.

Pourrais tu joindre ton fichier pour avoir plus de chance que quelqu'un puisse répondre?
 

DEIDIER

XLDnaute Nouveau
Re : Ajustement abscisse automatique d'un graphique avec un filtre automatique

Salut MJ13,

Voici un exemple.
Je veux, lorsque je choisi un protocole, avoir, sur une autre feuille un certain nombre de graphiques qui se créent automatiquement dont la valeur max de l'axe des x corresponde au nombre de lignes présentes dans la base de données.
Or, suivant le protocole choisi, le nombre de lignes varie (et est incrémenté avec le temps)
Dans cet exemple, j'ai 11 valeurs pour le "CRANE TRAUMA 1-3ans/NEUROPED"
Mais seulement 6 pour le "CRANE TRAUMA 1-3ans/NEUROPED" .....

A l'heure actuelle je les crée, mais sur une valeur max des x arbitraire et inadaptée aux différents protocoles.

Merci d'avance
 

Pièces jointes

  • Classeur1.xls
    34 KB · Affichages: 149
  • Classeur1.xls
    34 KB · Affichages: 170
  • Classeur1.xls
    34 KB · Affichages: 177

MJ13

XLDnaute Barbatruc
Re : Ajustement abscisse automatique d'un graphique avec un filtre automatique

Re

Pas simple comme problème, surtout que je n'ai pas vu de graphique dans ta feuille (à moins qu'il soit caché).

Sinon voici un exemple, il suffirais de filtrer sur chaque élément et de copier le graphique dans une autre feuille.

Sinon, un TCD pourrait sans doute faire l'affaire.

Mais tu es en Xl2002 et moi en XL2007, donc cela n'est pas très compatible.
 

Pièces jointes

  • Classeur1bis.zip
    17.9 KB · Affichages: 116
  • Classeur1bis.zip
    17.9 KB · Affichages: 117
  • Classeur1bis.zip
    17.9 KB · Affichages: 113

DEIDIER

XLDnaute Nouveau
Re : Ajustement abscisse automatique d'un graphique avec un filtre automatique

Voici ce que j'avais en tête feuille 2. Cela se rapproche de ce que tu m'as proposé. Mais je veux un graphique par colonne de la feuille1.

Je choisi un protocole (colonneA) et je peux en un coup d'oeil avoir accés à chaque parametre (pitch, mAs ..) afin de voir si un parametre a été modifié.

Je ne peux pas travailler avec un TCD car il ne donne que des stats tandis que moi je travaille sur les valeurs.

Penses tu qu'il est possible de "piloter" le choix du protocole dans la feuille 2 (pour éviter de sélectionner d'un côté et de regarder de l'autre.

En tout cas, voila la philosophie. Peux être penses tu a quelque chose d'autre ?

Merci de ton aide

Deidier
 

Pièces jointes

  • Classeur1bis.zip
    16.5 KB · Affichages: 85
  • Classeur1bis.zip
    16.5 KB · Affichages: 89
  • Classeur1bis.zip
    16.5 KB · Affichages: 87

MJ13

XLDnaute Barbatruc
Re : Ajustement abscisse automatique d'un graphique avec un filtre automatique

Re

Voici un exemple de ce qu'on peut faire avec une liste de validation et les évènements d'une feuille.

J'ai défini la liste en l'extrayant sans doublons des protocoles avec les filtres avancés.
 

Pièces jointes

  • DEIDIERV1.zip
    31 KB · Affichages: 146

DEIDIER

XLDnaute Nouveau
Re : Ajustement abscisse automatique d'un graphique avec un filtre automatique

Merci beaucoup MJ13.

Cela corresponds à ce que je veux faire.

En revanche, est définie dans le script la valeur arrêtée au jour j de la bdd.
Dans ce cas 64 lignes. La bdd s'incrémentant chaque jour, comment gérer l'ajustement du graphique ? Car si je décide de prendre une marge : je défini le range jusqu'à 1000. Mon graphique va être de nouveau compressé.
Y a t il une solution

Merci encore pour ton aide précieuse !!!

Deidier
 

MJ13

XLDnaute Barbatruc
Re : Ajustement abscisse automatique d'un graphique avec un filtre automatique

Re

Merci beaucoup MJ13.

De rien, c'est parce qu'actuellement je suis aussi sur les graphiques et que cela m'intéresse, vu que depuis que je suis sous XL2007, je n'en ai pas trop fait.

Sinon pour ton problème d'axe si tu as beaucoup de lignes, tu peux mettre tes graphiques en nuages de points et tester la macro jointe Test qui va prendre en Minimum 0 et en maximum le nombre de ligne filtrée + 2. C'est facilement adaptable pour les autres graphiques.

De plus j'ai mis dans les références des courbes jusque 640 points, à adapter en fonction de tes dionées réelles.
 

Pièces jointes

  • DEIDIERV2.zip
    35.7 KB · Affichages: 121

DEIDIER

XLDnaute Nouveau
Re : Ajustement abscisse automatique d'un graphique avec un filtre automatique

Bonjour michel,

La macro plante : erreur 1004 : "la methode select de la classe Series a échoué" sur la première ligne.
Est ce un pb de version d'excel ?

Merci
 

MJ13

XLDnaute Barbatruc
Re : Ajustement abscisse automatique d'un graphique avec un filtre automatique

Bonjour Deidier

La macro plante : erreur 1004 : "la methode select de la classe Series a échoué" sur la première ligne.
Est ce un pb de version d'excel ?

Je ne sais pas, mais je le crains :confused:.

Sinon tu peux essayer avec Henry (l'enregistreur de macros ;)), pour comparer les codes générés.

Code:
Sub test()
ActiveSheet.ChartObjects(2).Chart.SeriesCollection(1).Select
ActiveChart.Axes(xlCategory).Select
ActiveChart.Axes(xlCategory).MinimumScale = 0
    ActiveChart.Axes(xlCategory).MaximumScale = Sheets("Feuil1").Range("U1").Value + 2
 
End Sub
 

MJ13

XLDnaute Barbatruc
Re : Ajustement abscisse automatique d'un graphique avec un filtre automatique

Re

Sinon, avec Henry, essaye de sélectionner ton objet par exemple pour le graphique 1, cela peux changer d'une version ou d'une langue à l'autre (quelque fois c'est chart1, d'autres fosi, c'est Graphique 1).

ex

Code:
ActiveSheet.ChartObjects("Chart 1").Activate

On peut ausi utiliser les objets graphqiues:

Voir ici:

https://www.excel-downloads.com/thr...lle-dun-graphique-a-la-cellule-en-vba.156666/
 

DEIDIER

XLDnaute Nouveau
Re : Ajustement abscisse automatique d'un graphique avec un filtre automatique

J'y suis "arrivé".
Cela donne ça :

ActiveSheet.ChartObjects("Chart 3").Activate
ActiveChart.SeriesCollection(1).Select
ActiveChart.Axes(xlValue).Select
With ActiveChart.Axes(xlValue)
.MinimumScale = 0
.MaximumScale = Sheets("Feuil1").Range("U1").Value + 2
End With

Par contre, je ne comprends pas ton U1 ?

A quoi sert il? Il n'est pas rempli et ce que je cherche est mon nombre de ligne max et pas de colonne ...
 

MJ13

XLDnaute Barbatruc
Re : Ajustement abscisse automatique d'un graphique avec un filtre automatique

Re

Code:
.MaximumScale = Sheets("Feuil1").Range("U1").Value + 2

En fait je récupère le nombre de ligne de la feuille1 où il y a le sous total en cellule U1 qui est le nombre de lignes filtrées et qui indique le nombre de points dans tes graphiques.
 

Discussions similaires

Statistiques des forums

Discussions
312 347
Messages
2 087 501
Membres
103 563
dernier inscrit
samyezzehar