Plage de cellule ajustée automatiquement pour mes graphiques

amodu1244

XLDnaute Nouveau
Bonjour à tous,

Je me trouve face à un cas assez facile à expliquer mais plutôt difficile pour moi à résoudre, je fais donc appel à vous !

J'établis pour ma société un document qui va servir à effectuer de la planification de projet.
J'ai donc construit un diagramme de Gantt qui va venir donner une vision imagée de l'étendue du projet (voir fichier joint).
Voici la logique du fichier:
1) Je sélectionne par liste déroulante si je travaille un projet de l'entreprise 1, 2 ou 3 de mon groupe industriel sur le feuillet "entrées et repères d'avancement"
2) La liste des tâches s'affiche automatiquement à partir de A10 (en fonction de la langue que j'ai sélectionnée en B5)
3) Je complète manuellement les dates de début de mes tâches et mes durées en jour et la date de fin se complète automatiquement
4) Dans "planning du devis client", je récupère mes données et construit un graphique de gantt me permettant d'avoir une vision globale du projet traité

Le diagramme qui m'intéresse fait donc partie de l'onglet "planning du devis client". C'est un diagramme empilé 2D me donnant la liste de mes tâches en fonction de leur avancement dans le temps.
Le nombre de jours ouvrés est disposé sur mes barres avec une étiquette de données.

J'ai deux soucis que je souhaiterais régler par l'automatisation:

Souci 1:
la liste des tâches qui s'affichent entre B6 et B13 est dynamique, elle dépend du contenu d'une cellule d'un autre feuillet.
A l'intérieur de cette cellule, je sélectionne par liste déroulante une entreprise, et la liste des tâches s'affiche ensuite en fonction de l'entreprise que j'ai sélectionnée.
Le nombre de tâches n'est pas égal pour toutes les entreprises et cela cause un ennui: la sélection de données de mon graphique reste évidemment statique, ce qui fait qu'éventuellement, si l'utilisateur du fichier n'a aucune connaissance excel, il se retrouvera avec un graphique ne prenant pas en compte toutes les tâches (ou prenant des 0 à la place )

Souci 2:
Evidemment, étant donné que je travaille avec un diagramme de Gantt, l'échelle de mon axe horizontal est amenée à varier car les projets diffèrent et leurs dates aussi.
Cela signifie qu'en théorie, je dois aller à chaque fois dans la mise en forme de l'axe pour modifier les valeurs bornes de mon graphique (je récupère les valeurs à rentrer en I6 etI7).
Là aussi; j'aimerais que les bornes de mon graphique soient ajustées automatiquement

En résumé, serait-il possible par des mécanismes que je ne connais pas, ou par du VBA:
1) d'automatiser la sélection des données en prenant le bon nombre de tâches comme données d'entrées du graphique
2) d'automatiser l'axe des abcisses en fonction des dates de mon projet

Un grand merci à ceux qui pourront m'aider !

amodu1244
 

Pièces jointes

  • Exemple.xlsm
    43 KB · Affichages: 29

amodu1244

XLDnaute Nouveau
Bonjour

Voir formules, plages nommées et définitions des séries du graphique + code pour Axes

Salut Chris,

Merci pour ta réponse !
Petite question:
1) Je vois que tu as défini dans la sélection des données la plage B6 à D13.
Mais si je décide de rajouter des étapes à mon gantt, cette plage va rester B6 à B13 non ?
Sinon merci beaucoup pour le module ! ça marche niquel :)
 

amodu1244

XLDnaute Nouveau
Je te remercie, je viens de voir la définition des noms comme durée.
Dernière questions: quelle est la logique de la fonction décaler dans ce contexte ?

Encore merci et désolé pour les questions qui doivent certainement te sembler bêtes !
Je débute :)
 

chris

XLDnaute Barbatruc
RE

DECALER sert à calculer dynamiquement une plage et donc permet d'ajuster la taille à chaque cas.
Ici, pour Debut, on définit l'angle fixe, puis dynamiquement la hauteur en comptant les valeurs <>0 sur les 24 lignes.
Pour les autres, on prend la page parallèle...