Coder un jeu sur Excel, un challenge amusant pour progresser
Créer un jeu sur Excel et VBA est l’une des premières étapes par lesquelles passent tous les nouveaux arrivants chez F31 ! Très formateur techniquement, cet exercice permet également d’introduire des concepts qui seront très importants lors des futurs projets : performance, design, interface, expérience utilisateur…
Dans cet article, nous allons nous intéresser à la manière dont ces concepts se matérialisent concrètement à travers l’exemple d’un jeu que nous avons codé sur VBA et comment ceux-ci sont applicables à de réels projets.
Le jeu en question est « Wordle », disponible sur le site du New York Times, dans lequel les joueurs tentent de deviner un mot mystère. Au total vous avez 6 tentatives, et chacune d’entre elles vous donnera des indications sur la présence et l’emplacement des lettres du mot en question. Nous vous invitons à télécharger notre fichier Excel pour l’essayer, cela vous permettra de mieux comprendre la suite de l’article !
Penser son outil Excel
Cette première étape se fait généralement avant la création du fichier. Que ce soit pour un jeu ou un projet professionnel, un outil va répondre à un besoin et va s’adresser à des utilisateurs spécifiques : un outil de chiffrage, un modèle de financement de projet… En amont de sa création, il est nécessaire de définir la solution et le besoin auquel elle répond ainsi que son périmètre d’utilisation.
Définir la solution
Si cela paraît évident au premier abord, il est tout de même important de se poser la question suivante : qu’est-ce que l’outil doit permettre de faire ?
Répondre à cette question permet de mettre des mots sur le besoin et ainsi de concevoir une solution qui y répond. Pour qu’un outil soit efficace, il faut qu’il réponde à une ou des problématiques définies en amont. Par exemple un modèle d’acquisition aura pour but d’estimer le rendement d’un actif. Mais faut-il que ce modèle permette de comparer plusieurs actifs entre eux ? La réponse à cette question conditionnera la forme du fichier, c’est pourquoi il est important d’y réfléchir en amont.
Prenons un exemple pour notre jeu : quels utilisateurs souhaitons-nous cibler ? Des Français exclusivement ? Un large spectre de personne ? Il n’y a pas de bonnes ou mauvaises réponses, dans notre cas nous avons voulu que le jeu puisse être joué par tout le monde et nous l’avons donc conçu en anglais. Si nous en avions fait le choix dès le début, nous aurions pu par exemple permettre à l’utilisateur de sélectionner sa langue, et ainsi développer l’outil en conséquence.
Finalement, pour un jeu ou un outil professionnel, il est important de poser sa réflexion en amont pour imaginer à quoi ressemblera son outil. Ce temps investi au début en fera gagner beaucoup par la suite.
Délimiter le périmètre d’utilisation
Un bon outil Excel est un fichier simple à utiliser. Ainsi après avoir s’être demandé ce que l’outil permettait de faire, il faut maintenant réfléchir à ce que l’outil ne permet pas de faire. Définir les limites d’un outil permettra de le rendre plus simple d’utilisation, car vous pourrez vous concentrer sur l’essentiel.
A l’inverse, une multitude de fonctionnalités pourra donner un aspect gadget et complexe à l’outil. Et dans le cas où ce dernier devrait répondre à de multiples besoins, il faut se demander s’il n’est pas plus pertinent de développer une autre solution à part entière. Dans notre cas, nous pouvons uniquement jouer à Wordle, relancer une partie, et voir nos statistiques. Si nous souhaitons lancer une partie d’un autre jeu, il faudra se tourner vers le fichier développé par un autre membre de l’équipe !
De même pour un modèle d’acquisition, est-ce que celui-ci doit permettre de visualiser l’ensemble des actifs du portefeuille ? Il serait sûrement intéressant de développer un autre fichier pour répondre à ce besoin, et se tourner par exemple vers des solutions comme Power BI !
Il est aussi intéressant de s’interroger sur le parcours utilisateur, et de potentiellement restreindre les actions que l’outil permet de faire. Nous mettons souvent en place dans nos fichiers de la protection de feuilles et de cellules, permettant de restreindre l’affichage et forcer à utiliser l’outil tel qu’il a été conçu. Cela permet notamment d’éviter que la structure du fichier ne change ou que des bugs surviennent.
Evidemment cela a des limites, cela laisse moins de contrôle et de flexibilité à l’utilisateur. C’est pourquoi nous laissons toujours la possibilité de déverrouiller l’outil, comme vous le voyez dans le cas de notre jeu ! Cela permettra aux utilisateurs aguerris de s’approprier le fichier et d’approfondir son utilisation. Si vous souhaitez mettre cela en place, vous retrouverez toutes les macros que nous avons utilisées dans notre fichier.
Ainsi pour concevoir un outil Excel, nous conseillons en amont de :
- Définir clairement le besoin auquel l’outil répond
- Lister les fonctionnalités de l’outil
- Se mettre à la place de l’utilisateur final et réfléchir à son parcours sur le fichier
Concevoir l’interface de son fichier Excel
Si vous souhaitez qu’un joueur se surprenne à lancer plusieurs parties, il faut qu’il y prenne du plaisir. C’est la même chose dans le cas d’un outil de travail, si celui-ci n’est pas agréable à utiliser, il risque de tomber dans l’oubli. Et pour cela, il va falloir mettre en place une interface travaillée, afin de donner à l’utilisateur une expérience plaisante !
Faciliter l’utilisation du fichier Excel
Dans le cadre d’un jeu, les actions permises sont souvent assez simples : lancer une partie, jouer, relancer une partie. Bien que cela soit plus complexe dans le cadre d’outils professionnels, le principe reste le même, l’interface doit permettre de saisir rapidement les possibilités offertes par l’outil et permettre à l’utilisateur de le prendre en main rapidement.
Cela peut se faire via la présence de boutons avec une icône évoquant l’action associée. Sur Excel, vous pouvez assigner des macros à une image, une forme ou encore une icône afin qu’un simple clic dessus déclenche le code. Par exemple ici, nous avons assigner à cette icône une macro permettant d’afficher la fenêtre de statistique :
Chaque icône dans notre jeu permettra à l’utilisateur d’effectuer une action : afficher ses statistiques, relancer une partie, mettre en plein écran et déverrouiller le fichier.
De même, dans notre cas précis, nous voulons que l’utilisateur ait simplement à taper sur son clavier pour pouvoir jouer, sans qu’il ait à sélectionner différentes cellules. Afin de rendre l’expérience plus agréable, nous allons voulu reproduire le même fonctionnement que la version originale, où chaque lettre apparaît dans une case à part et se colore par la suite. Si Excel n’est pas prévu pour cela initialement, c’est tout de même possible à réaliser. En effet, s’il est courant de déclencher des macros grâce à des icônes (comme vu précédemment), il est aussi possible d’assigner des macros à des touches du clavier grâce à la méthode Application.OnKey. Ainsi dans notre cas appuyer sur A inscrira un A dans la cellule actuelle et passera à la cellule suivante.
Communiquer avec l’utilisateur
Nous venons de voir comment l’interface permettait de faciliter l’utilisation d’un outil, en d’autres termes de permettre à l’utilisateur d’interagir aisément avec le fichier. Désormais, nous allons voir comment l’outil peut communiquer avec l’utilisateur.
Pour cela, Excel offre de nombreuses possibilités. Si vous souhaitez par exemple afficher un message à un utilisateur, vous pourrez utiliser des « MsgBox ». Cela permettra de faire apparaître du texte mais aussi de donner la possibilité à l’utilisateur de confirmer son action. Différents types de MsgBox existent dans Excel, nous n’allons pas toutes les énumérer ici mais sachez que cela offre beaucoup de possibilités. Dans notre petit jeu nous allons communiquer avec l’utilisateur lorsqu’il gagne ou perd, mais aussi lorsqu’il saisit un mot qui n’existe pas par exemple, afin de l’en avertir.
De la même manière, vous allez pouvoir utiliser des « Input Box » afin que l’utilisateur puisse saisir des données, ou encore des User Form, qui permettent de créer des formulaires qui devront ensuite être complétés par les utilisateurs. Les cas d’utilisation sont multiples, cela peut permettre de rechercher dans une base de données, par exemple, ou de saisir des hypothèses dans un modèle.
Mais la façon la plus simple de communiquer avec l’utilisateur reste de simplement créer une page dédiée. Cela peut prendre la forme d’un onglet Excel, par exemple nous vous conseillons d’ajouter un guide d’utilisation dans tous vos outils, cela permettra d’en faciliter la prise en main et c’est un très bon exercice de synthèse !
Un bon outil passe donc nécessairement par une bonne interface, le fichier doit :
- Être facile d’utilisation
- Être agréable à utiliser
- Permettre d’interagir
- Communiquer avec l’utilisateur
Si vous souhaitez approfondir davantage, vous pouvez lire tous nos conseils pour améliorer l’expérience utilisateur dans Excel.
Soigner le design de son fichier Excel
Maintenant que nous avons vu comment développer une interface, nous pouvons nous intéresser au design de notre outil ! C’est le prolongement du développement de notre interface, une dernière étape souvent sous-estimée mais en réalité très importante.
Lier le fond et la forme
Comme nous l’avons vu précédemment, l’interface doit être intuitive et par exemple les icônes doivent être choisies de manière avisée. Les icônes renvoient donc de l’information, elles permettent de comprendre les fonctionnalités de l’outil, elles servent le fond. Ainsi le design est une composante à part entière en lien avec le fichier que l’on créé, il doit naître d’un besoin et permettre de faciliter la compréhension de l’outil.
De même il ne s’agit pas d’ajouter de la couleur pour rendre l’outil seulement plus joli, c’est surtout pour mettre en valeur des éléments comme une ligne de total par exemple, ou bien mettre en valeur une cellule pour signifier un élément différenciant. Il peut être également pertinent d’inclure dans le guide utilisateur la signification du code couleur si celui-ci est complexe.
Dans notre jeu, les couleurs permettent d’indiquer à l’utilisateur si la lettre est absente dans le mot (gris), mal placée (orange) ou bien placée (vert). Avoir trois couleurs permet de faire comprendre à l’utilisateur qu’il n’y a que trois possibilités, le vert renvoie au positif et le gris à l’indifférence. Toutefois cela ne suffit pas pour qu’un nouveau joueur comprenne rapidement la signification précise des couleurs, c’est pourquoi il serait important d’expliciter ces règles au sein d’un petit guide.
De la même manière, si vous allez au bout de la partie et que vous voyez la page statistique s’afficher, la barre de l’histogramme dans laquelle le résultat que vous venez d’obtenir sera mise en valeur :
A travers Wordle, nous voyons donc que le design renvoie de l’information et répond à un besoin, celui de savoir si notre mot se rapproche du mot à trouver. Cela est parlant à travers un jeu mais reste vrai dans un outil professionnel. Au-delà de l’usage du rouge et du vert pour évoquer le négatif et le positif, prendre le temps de s’intéresser à la forme de du fichier permettra de le structurer et d’en faciliter l’utilisation.
Se soucier du détail
Enfin pour finaliser l’outil, il ne vous reste qu’à vous intéresser aux détails (qui ont tout de même leur importance !). Nous allons vous lister quelques éléments qui méritent que l’on s’attarde dessus.
- Aérer son fichier : n’hésitez pas à laisser des lignes vides entre vos tableaux ou textes et faîtes en sorte d’aérer visuellement les informations, cela rendra la lecture plus agréable. Vous pouvez aussi masquer le quadrillage, la barre d’en-tête et la barre de formule, comme c’est le cas pour notre fichier.
- Faire attention à l’uniformité : vérifiez que vous utilisez bien la même police dans tout le document ou à minima que vous n’en employez pas plus de deux ou trois, de même pour la taille de cette dernière. Nous vous conseillons également de définir un thème afin que la charte graphique soit respectée partout dans le fichier.
- Désactiver l’actualisation de l’écran au début de l’exécution des macros : en plus d’améliorer les performances de l’outil, cela permettra de ne pas voir l’écran s’actualiser en permanence lorsque le code s’exécute, vous pouvez le désactiver avec Application.ScreenUpdating = False. De la même manière, vous pouvez passer le calcul en manuel, mais dans ce cas n’oubliez pas de calculer les feuilles dans le code lorsque cela s’avère nécessaire (Application.Calculation = xlCalculationManual). Pensez également à les réactiver à la fin de du code. (Application.ScreenUpdating = True, Application.Calculation = xlAutomatic).
Cette liste n’est évidemment pas exhaustive et dépend du fichier en question.
La forme est ainsi une composante à part entière d’un outil Excel, il faut donc y apporter une attention particulière, notamment concernant les points suivants :
- Le design doit rendre l’outil plus intuitif
- Un fichier doit être aéré
- Les éléments visuels doivent être uniformes
Si vous souhaitez avoir plus d’informations sur comment améliorer le design de vos fichiers Excel, nous y avons dédié un article.
Conclusion
Tout au long de cet article et à travers notre jeu Wordle, nous avons abordé de nombreux points permettant de créer une expérience utilisateur optimale. Reproduire un jeu sur Excel permet donc d’introduire de nombreux concepts dans un cadre ludique et de les rendre accessibles. C’est un premier défi très intéressant pour se familiariser avec Excel et VBA ! Si vous souhaitez approfondir ces concepts sous un autre angle, vous pourrez retrouver nos conseils sur les bases de la modélisation financière.