Monsieur Excel
Pour tout savoir faire sur Excel !

31 octobre 2011

Remarques sur les bullet graphs

Voici avec cet article la fin de notre série sur les bullet graphs: ils représentent une façon originale de rassembler en un seul graphe de multiples informations sur la position d’un indicateur par rapport à son objectif et à divers seuils de qualité.

Certes, vous trouverez sur le marché des add-ins qui prendront leur tracé en charge pour vous, mais – avec cette série d’articles – vous avez au moins la possibilité de les créer vous-même, et sans sortir votre carte de crédit…

Plutôt que le dédoublement de bullet graphprésenté dans l’article précédent, vous pouvez aussi procéder de la façon suivante, qui d’une part évitera la perte d’épaisseur consécutive au dédoublement, et d’autre part vous laissera créer autant de bullet graphs que vous le voudrez :

1 – Clonez le bullet graph vertical en le tirant à droite avec la touche [Ctrl] enfoncée. Attention, il faut que la zone de graphique soit préalablement sélectionnée (et non la zone de traçage) ; si c’est bien le cas, on voit les 8 marqueurs de sélection !

2 – Cliquez dans le clone pour obtenir le liseré bleu. Cliquez sur un des quatre bords de ce liseré pour sélectionner le bloc, puis déplacez ce bloc d’une colonne vers la droite, ce qui sélectionne uniquement la seconde série.

3 – Copiez la zone où se trouve le second bullet graph et collez l’image avec liaison, puis tournez-la de 90° vers la droite, comme nous avons appris à le faire dans l’article du 18 octobre.

Avec ce processus, tous les bullet graphs sont indépendants les uns des autres, mais on est obligé de passer par la troisième étape en plus…

26 octobre 2011

Dédoublement du bullet graph

Nous nous intéressons aujourd’hui à la façon de créer rapidement un second bullet graph à partir du premier, créé en utilisant les conseils des articles précédents.

Nous voyons, dans la première copie d’écran ci-dessous, un tableau de données pour deux produits, Pr. 1 et Pr. 2, avec les données originales en B3:C8 et celles que nous avons calculées pour le graphe en F3:G8, en utilisant les formules présentées dans l’article du 18 octobre.

Quand nous activons le graphe original, ses données en F3:F8 sont activées, ce qui est marqué par un liseré bleu. Tirons le marqueur du coin inférieur droit à droite d’une colonne, et nous obtenons alors le résultat de la copie d’écran ci-dessous : le graphe actif intègre à présent les données des deux produits, et sa photo dynamique en lignes 12 et 14 reflète cette modification.

Remarque 1 – Voilà une méthode remarquablement rapide et simple pour redéfinir les données d’un graphe ! Et cela marche dans les deux sens : si l’on tire le coin inférieur droit d’une colonne vers la gauche, on restaure la situation précédente…

Remarque 2 – Seul inconvénient : les deux bullet graphs sont à présent deux fois plus minces. Si donc on prévoit de dédoubler ainsi un bullet graph, il faut le créer deux fois plus gros au départ !

22 octobre 2011

Le « bullet graph » horizontal

Comment passer du bullet graph vertical que nous avons créé il y a quatre jours à un « bullet graph » horizontal ? C’est ce que nous allons à présent apprendre à faire.

Commençons par tirer le graphe (c) – cf. l'article d'il y a quatre jours – vers la droite au milieu d’une colonne G étroite. Sélectionnons le bloc G10:G20, qui recouvre alors entièrement le graphe (c) ainsi déplacé.

Copions ce bloc avec [Ctrl]-c puis – et c’est là toute l’astuce ! – maintenons la touche [Maj] enfoncée avant d’exécuter la commande « Coller ». Nous voyons alors la commande « En tant qu’image… » apparaître et nous sélectionnons l’option « Coller l’image avec liaison ».

Et voilà ! Nous venons de créer un objet qui est une image – par conséquent redimensionnable et déplaçable à loisir – jouant le rôle de photo dynamique du graphe.

Cliquons sur cette image pour la sélectionner. Nous voyons un rond vert au-dessus de l’image (cf. copie d'écran ci-dessus) : il suffit de le sélectionner et de le tirer dans le sens des aiguilles d'une montre pour faire tourner l’image et rendre le graphe horizontal. En utilisant la touche [Maj] durant ce process, on s’assure d’un placement exactement horizontal.

Il suffit maintenant de modifier les valeurs de B1:B6 pour constater que dans tous les graphes (a, b et c dans l'article précédent), y compris le nouveau bullet graph horizontal, la mise à jour des graphes est immédiate !

Remarque – En ce qui concerne les étiquettes des X dans la copie d’écran il y a 8 jours, j’ai triché ! J’ai en effet créé un graphe avec cet axe des X puis j’ai copié et collé cet axe en dessous de mon bullet graph. Un peu magouilleur certes, mais plus rapide que d’autres approches…

18 octobre 2011

Le « bullet graph » vertical

Le bullet graph le plus facile à créer est le vertical. Une première étape consiste à évaluer les pourcentages de l’objectif apportés par chacune des quatre valeurs « Mauvais », « Acceptable », « Bon » ou « Excellent ». Nous voyons dans la copie d’écran ci-dessous en colonne F une copie des formules utilisées à cet effet en E1:E4.

Pour la valeur actuelle et l’objectif, on calcule ce même ratio, sans tenir compte des quatre premiers ratios…

On construit alors un histogramme cumulé à partir des valeurs E1:E6. Le résultat de ce premier « tracé » est le graphe (a).

On sélectionne alors la série n°6, on l’associe à l’axe droit, on donne à cet axe droit la même échelle que celle de l’axe gauche (ici, de 0% à 120%), et on modifie le graphe de cette série pour prendre la courbe avec marqueurs. Il suffit alors d’effacer la courbe – en ne gardant que les marqueurs – et à sélectionner un marqueur en barre horizontale rouge de largeur 20.

Ensuite, on sélectionne la série n°5, on l’associe à l’axe droit, et on modifie son intervalle pour prendre un intervalle maximal, ce qui rétrécit la barre verticale de l’objectif.

On détruit alors l’axe droit, et on modifie les couleurs des séries 1 à 5 pour obtenir le dégradé de gris pour les quatre premières et le noir complet pour la cinquième. Vous obtenez alors le résultat du graphe (b).

Il ne reste plus qu’à ôter l’échelle verticale, le quadrillage et les bordures, et
à « bouffer » les espaces… pour obtenir enfin le résultat du graphe (c), un
« bullet graph » vertical.

14 octobre 2011

Présentation du « bullet graph »

Vous avez probablement déjà entendu parler de « bullet graph » ou « bullet chart ». Il s’agit d’une invention de Stephen Few, dont nous voyons ci-dessous un exemple dans les lignes 10 à 12.

Vous avez indiqué dans le bloc B3:B6 les seuils de valeurs pour lesquelles vous jugiez que le résultat était respectivement « Mauvais », « Acceptable », « Bon » ou « Excellent ».

Ces valeurs sont représentées dans le « bullet graph » par quatre fonds gris, de teintes de plus en plus claires.

Le graphe affiche aussi – via la barre noire centrale – la valeur actuelle de la variable analysée et – via une barre rouge, dans cet exemple – la valeur de l’objectif à atteindre.

On parle de « bullet graph » car le résultat fait penser à l’avancée d’une balle dans le barillet d’un pistolet.

Remarque – Il n’est pas nécessaire de représenter un axe des abscisses comme nous l’avons fait ici. Ce type de graphe est déjà très explicite sans axe des X.

Un bullet graph peut être représenté horizontalement comme ici – c’est le cas le plus fréquent – ou verticalement. Il est cependant plus aisé à construire verticalement.

La construction d’un bullet graph n’est pas simple : j’ai trouvé sur Internet des tutoriaux pour cela longs respectivement de 12 et de 16 pages, ce qui est mal adapté au format (1 à 2 pages) de ce blog. Je vous montrerai dans les deux prochains articles comment en construire un bien plus rapidement :)

10 octobre 2011

Le cours d’une action, en mieux…

Suite à l’article précédent, j’ai eu le plaisir de recevoir une proposition de Claude Duigou, qui résout en bonne partie le problème soulevé. Nous voyons ci-dessous le résultat obtenu : on sélectionne la zone du graphe, puis on balade le curseur le long du graphe : le titre du graphe s’adapte alors en temps réel et affiche la date et la valeur.

Comme on le voit ci-dessus, ces informations apparaissent aussi dans le graphe à la hauteur du point, mais seulement après un certain temps d’attente, pas immédiatement comme pour le titre.

Pour obtenir ce résultat, il a fallu créer – liée au classeur – la macro suivante :

Dim ClasseGraphique As New GraphiqueEvenement

Private Sub Workbook_Open()

Set ClasseGraphique.MonGraphique = ActiveSheet.ChartObjects(1).Chart

End Sub

Et en plus, dans un module de classe, la macro suivante :

Public WithEvents MonGraphique As Chart

Private Sub MonGraphique_MouseMove(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y As Long)

Dim lngElement As Long

Dim Arg1 As Long

Dim Arg2 As Long

MonGraphique.GetChartElement x, y, lngElement, Arg1, Arg2

If lngElement = xlSeries Then

ActiveSheet.Range("DateJour").Value = ActiveSheet.Cells(Arg2 + 1, 1).Value

ActiveSheet.Range("Valeur").Value = ActiveSheet.Cells(Arg2 + 1, 2).Value

End If

End Sub

La seule chose qui manque encore, par rapport à l’original sur Boursorama, est le marquage par un gros point rouge de la valeur active correspondante dans le graphe.

Dans la solution que je proposais il y a quatre jours, il y avait le point (mais ni gros ni rouge), mais en revanche on ne pouvait pas simplement passer la souris sur le graphe : il fallait utiliser le curseur pour passer d'un point à un autre…

06 octobre 2011

Suivre le cours d’une action

Sur de nombreux sites de bourse ou de conseils financiers, en particulier sur la page d’accueil de Boursorama, on dispose du graphe d’un cours qui, quand on déplace le curseur dessus, marque le point sur le graphe et indique le cours et l’heure.

Voyez donc cela sur le site : http://www.boursorama.com/bourse/

Un lecteur me demandait récemment si l’on pouvait faire cela dans Excel. Je n’ai pas trouvé de solution simple pour le faire, mais j’ai quand même une solution sympathique à vous proposer, qui atteint une bonne partie de l’objectif.

Nous créons un ascenseur attribuant à la cellule C1, nommée Pos, une valeur de 1 à 25. Pour la création de l’ascenseur, reportez-vous à l’article précédent…

Nous entrons en C2 la formule ="Valeur en "&texte(index(A:A;C1);"mmmm aaaa")&" : "&texte(index(B:B;C1);"0 €"), et nous donnons ce titre au graphe.

Il ne reste plus qu’à créer la macro événementielle suivante, liée à la feuille actuelle :

Private Sub Worksheet_Calculate()

ActiveSheet.ChartObjects("Graphique 1").Activate

ActiveChart.SeriesCollection(1).Select

ActiveChart.SeriesCollection(1).Points(Range("Pos")).Select

End Sub

Dès que l’on utilise l’ascenseur, cela modifie la valeur de C1 et active donc la macro, mettant en relief le point sélectionné. Comme nous le voyons dans l’image ci-dessus, le point à 79 € de juillet 2010 est aussitôt mis en relief.

Remarque – Le seul petit problème est que le point précédent est lui aussi – quoique un peu moins – mis en relief. Vous le verrez mieux en agrandissant cette copie d’écran à l’aide d’un double clic dessus : )

Si un lecteur peut nous proposer une macro faisant exactement comme sur le site de Boursorama, je serai ravi de publier sa solution !