[VIDEO] Créer une check-list dynamique (todo, courses, fournitures scolaires, vacances, mariage...)

La todo-list (ou liste des choses à faire) est l’outil indispensable à toute personne qui souhaite organiser de manière factuelle les tâches à effectuer. Elle permet de présenter visuellement ce qui doit être effectué, et ce qui l’est déjà. Dans cet article, nous allons voir comment créer très simplement un tel outil. En plus de sa fonction première de todo-list, l’outil que nous allons mettre en place va également permettre de gérer une liste de courses, une liste des affaires à préparer avant de partir en vacances, une liste des invités pour un mariage etc… Tout ceci directement dans Excel !

 

 

Pour suivre ce tuto dans les meilleurs conditions, je vous invite à télécharger le fichier dans le lien disponible en fin d’article (cliquez ici pour y accéder).

 

 

 

1. Préparatifs

 

Avant de créer notre check-list, nous allons voir trois points importants.

 

   1.1. Le format *.xlsm

 

Tout d'abord lorsque nous enregistrons notre fichier, nous devons nous assurer que celui-ci est bien enregistré en tant que fichier *.xlsm. Ce format permet d’enregistrer également les macro-commandes que nous allons développer au sein de notre application.

 

Excel formation - video crer une check list dynamique todo courses fournitures scolaires vacances mariage

 

   1.2. Affichage de l’onglet développeur

 

Il faut également vérifier que l'onglet développeurs est bien présent dans le ruban, afin de pouvoir lancer Visual Basic (l’outil de développement des macro-commandes).

Si ce n'est pas le cas, la procédure pour l’afficher est la suivante :

  • Rendez-vous dans le menu « Fichier »,
  • Puis « Options »,
  • Dans la rubrique « Personnaliser le ruban », cochez la case « Développeur », si ce n'est pas déjà fait.
  • Puis validez en cliquant sur le bouton « OK »

Excel formation - video crer une check list dynamique todo courses fournitures scolaires vacances mariage

   1.3. Les caractères spéciaux

 

Pour la création de notre check-list, nous allons utiliser des caractères spéciaux représentant les deux états de la case : vide et cochée.

Pour identifier ces caractères spéciaux, rendez-vous dans l'onglet « Insertion » du ruban, puis « Symbole », afin d'afficher la fenêtre des caractères spéciaux.

Dans le menu « Police », nous allons sélectionner la police « Wingdings 2 ». C’est dans ce jeu de caractères que nous allons sélectionner dans un premier temps la case cochée. En double-cliquant dessus, elle s'insère automatiquement dans la barre des formules. Puis nous allons sélectionner la deuxième, qui est la case vide.

Excel formation - video crer une check list dynamique todo courses fournitures scolaires vacances mariage

Une fois ces deux caractères insérés dans la barre des formules, nous pouvons fermer la fenêtre en cliquant sur le bouton « Fermer ».

 

Excel formation - video crer une check list dynamique todo courses fournitures scolaires vacances mariage

Ensuite, lorsque nous validons la formule avec la touche [Entrée] du clavier, nous pouvons constater que les cases ont disparues et qu'à la place Excel nous affiche est un symbole Livre (« £ »), et une lettre « R » majuscule.

 

Excel formation - video crer une check list dynamique todo courses fournitures scolaires vacances mariage

Pas de panique !

Pour retrouver nos cases, il suffit de modifier la police de la cellule en « Wingdings 2 » (qui se trouve tout en bas de la liste).

Maintenant que nous savons comment insérer les caractères spéciaux représentant nos listes (en utilisant la police « Wingdings 2 » et les caractères « £ », ainsi que « R »), nous pouvons supprimer la cellule.

 

2. Création de la check-list

 

   2.1. Création du tableau de données

 

Nous pouvons à présent commencer à proprement parler la mise en place de notre check-list. Pour cela nous allons sélectionner deux cellules (une cellule de la colonne « A » et sa voisine de la colonne « B »), puis dans l'onglet « Insertion », nous allons cliquons sur « Tableau » pour transformer ces deux cellules en un tableau de données.

 

Excel formation - video crer une check list dynamique todo courses fournitures scolaires vacances mariage

 

Excel formation - video crer une check list dynamique todo courses fournitures scolaires vacances mariage

 

Excel formation - video crer une check list dynamique todo courses fournitures scolaires vacances mariage

Ce tableau nous permettra d’ajouter simplement de nouvelles lignes sur notre check-list, uniquement en saisissant un nouvel élément sur la ligne juste en dessous.

Les en-têtes de colonnes ne sont pas vraiment explicites (Colonne 1 et Colonne 2), nous allons leur donner des titres plus parlants :

  • Dans la première colonne nous allons insérer les cases à cocher, nous allons donc l'appeler « Fait »,
  • Tandis que dans la seconde colonne, nous allons venir saisir nos tâches, nous allons donc l’appeler… « Tâches » !

Excel formation - video crer une check list dynamique todo courses fournitures scolaires vacances mariage

Pour pouvoir appeler rapidement le tableau que nous venons de créer, ainsi que ces colonnes, nous allons lui donner un nom. Dans l'onglet « Création » du ruban qui ne s'affiche que lorsque nous sélectionnons une des cellules du tableau, nous allons venir saisir le nom à lui affecter dans la zone « Nom du tableau ».

Excel formation - video crer une check list dynamique todo courses fournitures scolaires vacances mariage

Appelons par exemple notre tableau « liste » (n’oublions pas de valider en appuyant sur la touche [Entrée]).

 

   2.2. Saisie de la première tâche… à la main !

 

Pour l'exemple nous allons insérer une première tâche à la main.

Pour cela :

  • Sur la première ligne de notre tableau, nous allons saisir le nom de la tâche dans la colonne « Tâches » (par exemple « Faire les courses »,

Excel formation - video crer une check list dynamique todo courses fournitures scolaires vacances mariage

  • Dans la colonne « Fait », nous allons insérer la première case :
    • Saisissons simplement le symbole « £ » (qui est le symbole qui permet d’insérer la case vide),Excel formation - video crer une check list dynamique todo courses fournitures scolaires vacances mariage
    • Puis nous modifions la police de la colonne du tableau pour « Wingdings 2 »Excel formation - video crer une check list dynamique todo courses fournitures scolaires vacances mariage
    • Et enfin, nous pouvons centrer la case dans la cellule


 

Voilà, notre première tâche est maintenant insérée !

 

3. Automatisation du fonctionnement de la check-list

 

Il est temps d’automatiser le fonctionnement de notre check-list. Pour cela, nous allons procéder en deux temps :

  • Dans un premier temps nous allons vouloir faire en sorte que lorsque l'utilisateur clique sur la cellule qui contient une case, celle-ci se coche, puis se décoche automatiquement,
  • Puis dans un second temps, lorsque nous viendrons insérer un nouvel élément dans notre tableau, nous ferons en sorte qu’une nouvelle case (vide par défaut) s’ajoute automatiquement.

Pour cela nous allons nous rendre dans l'outil développement de Microsoft Excel, en cliquant sur le bouton « Visual Basic » de l’onglet « Développeur » du ruban.

L’outil de développement d’Excel s’affiche alors, et nous allons pouvoir saisir nos macro-commandes, directement dans la feuille de calcul. Dans la partie gauche  « Projet – VBAProjet », nous double-cliquons sur la feuille de calcul afin de pouvoir y insérer du code.

Excel formation - video crer une check list dynamique todo courses fournitures scolaires vacances mariage

 

   3.1. Cocher et décocher automatiquement

 

Pour rappel la première opération que nous allons mettre en place consiste à modifier de manière automatisée la case lorsque nous cliquons sur la cellule dans laquelle celle-ci est insérée. Pour cela nous allons utiliser l'événement SelectionChange de Worksheet :

 

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub

 

Un évènement est une instruction qui va être exécutée à chaque fois qu’une action particulière a lieu sur une feuille de calcul (ici l’évènement va être appelé à chaque fois que l’utilisateur clique sur une cellule).

La cellule sélectionnée (ou les cellules s’il y en a plusieurs) va être retournée à l’utilisateur dans la variable « target » (de type range) afin d’être utilisée dans la procédure.

En premier lieu, nous allons vouloir nous assurer que la variable récupérée (« target ») n’est constituée que d'une seule cellule. Et si tel n’est pas le cas, alors nous allons quitter la procédure. Cela va nous éviter tout risque d’erreur si l’utilisateur sélectionne plusieurs cellules à la fois.

Pour cela nous allons effectuer un test avec l'instruction Count appliquée sur notre la variable « target ». Et si le résultat de cette instruction Count est supérieur à 1 alors nous effectuerons un « Exit sub » qui permet de quitter l’instruction, sans rien faire de plus :

 

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
End Sub

 

Ensuite, nous allons vouloir contrôler que la cellule sélectionnée appartient bien à la colonne « Fait » de notre tableau « _liste ». Pour cela nous allons utiliser l'instruction intersect() de la manière suivante :

 

​​​​​​​    If Not Intersect(Target, [liste[Fait]]) Is Nothing Then    
    End If

 

Cette instruction nous permet de récupérer une plage constituée par les cellules situées à l’intersection des deux plages comparées :

  • « target » dans un premier temps, qui comme nous le savons correspond à la cellule sur laquelle l’utilisateur a cliqué,
  • Puis « [_liste[Fait]] » qui correspond à la plage des cellules de la colonne « Fait » de notre liste.

En l’absence de cellule commune à ces deux plages, intersect() renverra pour valeur « nothing ». Nous cherchons donc à savoir si ce résultat est différent (« not…is ») de nothing.

Ensuite, nous allons analyser la valeur de la cellule « target ». Si cette cellule vaut « £ », cela signifie que c’est une case vide, et donc nous allons vouloir la cocher, en lui donnant pour valeur : « R » :

 

    If Not Intersect(Target, [liste[Fait]]) Is Nothing Then

        If Target = "£" Then
            Target = "R"
        Else
            Target = "£"
        End If       

    End If

  

Après avoir modifié la procédure comme nous venons de le voir, nous pouvons tester notre check-list pour constater qu’effectivement lorsque nous cliquons sur une cellule contenue dans la première colonne de notre liste, l’état de la case change pour ajouter ou retirer la coche de la case.

Excel formation - video crer une check list dynamique todo courses fournitures scolaires vacances mariage

Par contre, nous constatons également au passage l’impossibilité de cliquer deux fois de suite sur une même cellule.

En effet, lorsque nous cliquons plusieurs fois de suite dans la même cellule, la sélection ne change pas et reste toujours sur la même cellule. Nous sommes alors obligés de cliquer sur une autre cellule entre deux clics.

Pour résoudre ce petit inconvénient, une fois que nous aurons coché (ou décoché) la case, nous allons automatiquement modifier la sélection pour la décaler d'une cellule vers la droite. Pour cela modifions notre procédure de la manière suivante :

 

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If Target.Count > 1 Then Exit Sub   

    If Not Intersect(Target, [liste[Fait]]) Is Nothing Then

        If Target = "£" Then
            Target = "R"
        Else
            Target = "£"
        End If

        Target.Offset(0, 1).Select

    End If

End Sub

  

Cela reviens à demander à Excel de sélectionner la case obtenue en effectuant un décalage de zéro cellule sur l’axe verticale (la même ligne), et d’une cellule vers la droite sur l’axe horizontale.

Ainsi, la sélection se décale vers la droite automatiquement lorsque nous cliquons sur une des cellules de la colonne « Fait », ce qui fait que nous pouvons cliquer plusieurs fois de suite sur une même coche.

 

   3.2. Ajouter une case vide lors de l’insertion d’une nouvelle ligne

 

Pour notre exemple, nous avons inséré une première ligne de test « à la main », en saisissant le symbole « £ » pour insérer une case non cochée. Nous allons maintenant vouloir que lorsque nous ajouterons une nouvelle tâche en bas de notre tableau, automatiquement une case non cochée s'ajoute dans la première colonne.

Pour cela nous allons utiliser un autre évènement d’Excel : l'événements Worksheet_Change (), qui est appelé à chaque fois qu'une cellule voit sa valeur modifiée.

Rendons-nous à nouveau dans « Visual Basic », puis dans la liste déroulante en haut à droite, nous choisissons « change ». Automatiquement Excel ajoute une nouvelle procédure :

Excel formation - video crer une check list dynamique todo courses fournitures scolaires vacances mariage

 

Private Sub Worksheet_Change(ByVal Target As Range)
End Sub

 

Comme vous pouvez le constater, ici aussi Excel nous renvoie une variable de type range, qui porte le nom de « target ». Comme précédemment, nous allons commencer par vérifier qu'une seule cellule a été modifiée, en copiant, puis collant la ligne suivante :

 

 If Target.Count > 1 Then Exit Sub

 

Puis nous allons vérifier que la cellule modifiée appartient effectivement à notre tableau « _liste ». Cette fois-ci nous n’avons pas à nous soucier de la colonne :

 

    If Not Intersect(Target, [liste]) Is Nothing Then       
    End If

 

A présent, nous allons nous intéresser à la cellule située aux coordonnées suivantes :

  • Sur la même ligne que « target »,
  • Sur la première colonne de notre liste (dans notre cas, il s’agit de la première colonne de la feuille de calcul)

Nous allons regarder si cette cellule est vide (donc qu’aucune valeur n’a été saisie), ce qui sera le cas à chaque fois qu’un nouvel enregistrement va être ajouté sur notre liste, et si c’est le cas, alors nous allons lui affecter pour valeur le symbole « £ » (case non cochée) :

 

        If Cells(Target.Row, 1) = "" Then
            Cells(Target.Row, 1) = "£"
        End If

 

L’instruction Worksheet_Change au complet doit désormais ressembler à ceci :

 

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Count > 1 Then Exit Sub   

    If Not Intersect(Target, [liste]) Is Nothing Then       
        If Cells(Target.Row, 1) = "" Then
            Cells(Target.Row, 1) = "£"
        End If
    End If

End Sub

 

Nous pouvons tester et constater que notre check-list est bien fonctionnelle, nous pouvons en effet :

  • Ajouter un nouvel enregistrement en bas de notre liste pour l’alimenter,
  • Une case vide s’ajoute alors automatiquement,
  • Un clic sur cette case permet de la cocher ou de la décocher

 

 

4. Télécharger le fichier d'exemple

 

Vous pouvez télécharger le fichier d'exemple de cet article en cliquant sur le lien suivant :

 



Articles qui pourraient vous intéresser

Comment empêcher la suppression ou la modification des cellules sur Excel

Comment créer un formulaire de saisie intégré dans une feuille de calcul sur Excel

Calculer la racine n-ième d’un nombre sur Excel

Comment synthétiser les informations sur Excel : le mode plan

Commentaires

Il n'y a aucun commentaire...

Poster un commentaire

Pseudo
Commentaire

Contact - Plan du site - À propos - Contact

© Excel-Formation 2018 - Excel, simplement

Haut de la page

Excelformation.fr propose de nombreuses formations pratiques et gratuites sur Microsoft Excel : des cours pour apprendre à structurer et analyser les données, des tutos sur les fonctions avancées, les formules et les formules avancées d'Excel, les formules matricielles, les mise-en-formes conditionnelles, les graphiques Excel (xls, xlsx, xlsm,…). Des tutoriels pour apprendre à automatiser les tâches répétitives (via des macro-commandes en VBA) de vos classeurs Excel.