COMMENT EFFACER ET PERSONNALISER LA LISTE DES DOCUMENTS RÉCENTS D’EXCEL (la vraie méthode)

Guide « 108 astuces pour grands débutants sur Excel ! » Offert
Booster votre productivité en téléchargeant gratuitement votre ebook PDF des meilleures astuces pour les débutants et les pros d'Excel
Excel formation - 00 Astuces - 100
 

La barre des documents récents d’Excel permet de lancer rapidement les derniers fichiers ouverts, sans besoin de rechercher ces derniers. Nous allons voir dans ce tutoriel comment procéder pour personnaliser cette liste, et également comment la purger de manière définitive pour en supprimer tous les fichiers déjà présents. Nous verrons également en toute fin de tutoriel comment sélectionner un classeur à retirer automatiquement de la liste des fichiers récents, en utilisant une petite macro VBA.

 

Téléchargement

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

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
 

 

Tutoriel Vidéo

 

Partie 1 : Comment effacer et personnaliser la liste des documents récents d’Excel (la vraie méthode)

Partie 2 : Comment supprimer un classeur de la liste des fichiers récemment ouverts sur Excel ?

Partie 3 : Comment rendre un classeur invisible aux yeux de la liste des fichiers récemment ouverts sur Excel ?

Vous trouverez très régulièrement de nouvelles vidéos sur la chaîne, alors pensez à vous abonner pour ne manquer aucune astuce et devenir rapidement un pro d’Excel (cliquez-ici) !

 

 

1. Les classeurs récents

 

   1.1. Présentation

 

Par défaut, lorsque nous affichons le menu Fichier d’Excel, ou de n’importe quelle autre application de la suite Office (Word, PowerPoint, Outlook), les derniers éléments à avoir été ouverts sont affichés dans la zone des éléments récents.

Cette option très pratique permet de pouvoir accéder rapidement aux fichiers en question.

Nous allons voir dans ce tutoriel qu’il est tout à fait possible de personnaliser cette liste :

  • Personnaliser le nombre d’éléments présentés dans cette liste
  • Masquer ou afficher cette liste,
  • Supprimer le contenu de cette liste,

Excel formation - 040 Supprimer les éléments récents - 01

 

   1.2. Personnaliser le nombre d'éléments récemment utilisés

 

Pour personnaliser le nombre d’éléments récemment utilisés dans Excel, procédez simplement de la manière suivante :

  • Rendez-vous dans le menu Fichier > Options
  • Choisissez la catégorie Options avancés,
  • Puis dans le groupe Affichage,
  • Et enfin, il suffit de modifier la valeur du nombre de classeurs récents, comme le montre la capture ci-dessous (par défaut, ce nombre est à 50) :
  • Excel formation - 040 Supprimer les éléments récents - 02

Vous noterez qu’il est possible de personnaliser :

  • Le nombre total de classeurs affichés dans la liste,
  • Mais également le nombre de classeurs qui ne sont pas attachés

Pour attacher un classeur, il suffit de cliquer sur la punaise pour le conserver de manière systématique au sein de la liste.

Si vous n’avez attaché aucun classeur à la liste, alors Excel affichera le nombre de classeurs récents qui correspond au plus petits de ces deux réglages.

 

   1.3. Masquer totalement la liste des éléments récemment utilisés

 

Pour masquer totalement cette liste, nous allons procéder exactement de la même manière, en choisissant de n’afficher aucun classeur récent (mettre le menu Afficher ce nombre de classeurs récents à zéro) :

Excel formation - 040 Supprimer les éléments récents - 03

La liste des documents récents est alors vide :

Excel formation - 040 Supprimer les éléments récents - 04

Attention, cette liste n’est pas supprimée pour autant, elle est juste masquée.

Il suffit en effet de redéfinir un nombre d’éléments supérieurs à zéro pour la réafficher de nouveau :

Excel formation - 040 Supprimer les éléments récents - 05

 

   1.4. Supprimer un élément de la liste des documents récemment utilisés

 

Pour supprimer de manière définitive un élément de la liste, effectuez un clic-droit sur l’élément concerné, puis choisissez Supprimer de la liste

Excel formation - 040 Supprimer les éléments récents - 06

Attention, la suppression des éléments contenus dans la liste est définitive, aucun retour en arrière de sera plus possible ! Sauf bien entendu à rouvrir le fichier concerné…

Attention également de ne pas choisir Supprimer le fichier, ce qui aurait pour conséquence de supprimer directement le fichier en lui-même depuis son emplacement d’enregistrement, et non pas simplement le raccourci présenté dans ce menu !

Excel formation - 040 Supprimer les éléments récents - 07

Heureusement en cas de manipulation un peu hâtive, Excel demande une confirmation afin de ne pas supprimer un mauvais fichier par inadvertance !

 

2. Effacer définitivement tous les éléments de la liste en VBA

Depuis la version 2016 d’Excel, il n’est plus possible de supprimer tous les éléments de la liste (jusqu’à Excel 2013, il suffisait de choisir Effacer les documents non épinglés).

Il est maintenant nécessaire de passer par une macro commande VBA.

Pour cela, rendez-vous dans l’éditeur de macro VBE en effectuant un clic-droit sur le nom de l’onglet, afin de choisir l’option Visualiser le code :

Excel formation - 040 Supprimer les éléments récents - 08

Puis saisissez la macro suivante directement dans le code de la feuille de calcul :

 

 Sub supprimerElementsRecents()
    On Error Resume Next
    For i = 1 To 50
        Application.RecentFiles.Item(1).Delete
    Next
End Sub 

 

Ici, nous supprimons le premier raccourci présent dans la liste des documents récents, 50 fois de suite ! Pour de plus amples précisions sur cette macro VBA, je vous invite à visionner la vidéo présente au début de ce tutoriel.

Cela étant fait, positionnez simplement le curseur à l’intérieur de la macro, puis cliquez sur le triangle vert d’exécution (ou utilisez le raccourci clavier correspondant : [F5]) :

Excel formation - 040 Supprimer les éléments récents - 09

À présent, vous pouvez revenir dans le menu Fichier pour constater que la liste a été purgée :

Excel formation - 040 Supprimer les éléments récents - 10

 

3. Supprimer un classeur de la liste des documents récents en VBA

Pour supprimer un classeur donné, nous avons vu un peu plus tôt qu'il suffit d'effectuer un clic droit sur la liste des classeurs afin de sélectionner l’option « Supprimer de la liste » :

Excel formation - Supprimer un classeur de l'historique - 03

Mais, supposons que nous ne souhaitions ne supprimer qu’un seul classeur de cette liste en utilisant une macro-commande en VBA.

Pour cela, il sera nécessaire de procéder en deux temps :

  • Dans un premier temps, nous allons afficher dans une feuille de calcul tous les fichiers présents dans l’historique,
  • Puis dans un second temps, nous supprimerons de l’historique le classeur sélectionné

 

   3.1. Lister tous les classeurs

 

Pour lister les classeurs, nous commençons par créer une nouvelle procédure, que nous appelons listeClasseursHistorique :

Sub listeClasseursHistorique()
 
End Sub

Ensuite, comme pour la macro que nous avons au cours de la partie précédente, nous allons créer une nouvelle variable que nous appelons i et qui va nous permettre de mettre en place une boucle For… Next :

    Dim i As Integer
    For i = 1 To 50
    Next

Une boucle For… Next comme celle-ci permet de répéter une portion de code un nombre défini de fois.

Ici, nous commençons par donner à la variable i la valeur de 1, et nous souhaitons que la boucle se répète jusqu’à ce que cette valeur ait pour valeur 50, en sachant qu’à chaque fois que la boucle va recommencer, la variable i va voir sa valeur incrémentée d’une unité.

La boucle va donc se répéter 50 fois, ce qui correspond au nombre maximal de classeurs enregistrés dans l’historique.

Pour éviter toute erreur d’exécution dans le cas où l’utilisateur aurait défini un nombre de fichiers moindre, nous allons simplement ajouter l’instruction suivante, juste avant de lancer la boucle :

On Error Resume Next

Cette petite ligne de code permet de demander à VBA de continuer le déroulement de la macro, même lorsqu’une instruction problématique est rencontrée.

Cela permet ainsi de ne pas avoir à analyser au préalable le nombre de classeurs contenus dans l’historique.

Ensuite, il ne reste plus qu’à afficher le nom de tous les fichiers sur la feuille de calcul en insérant la ligne suivante à l’intérieur de la boucle :

    For i = 1 To 50
        Cells(i, 1) = Application.RecentFiles.Item(i).Name
    Next

Nous faisons ici appel à l’objet Application.RecentFiles que nous avions déjà utilisé dans la macro précédente, lequel recense tous les classeurs enregistrés dans l’historique. Chacun de ces classeurs est ensuite accessible par des sous-objets Item.

Pour pouvoir tester la macro, nous revenons sur la feuille de calcul, et nous allons raccorder un petit bouton directement sur celle-ci.

Pour cela, nous nous rendons dans le menu Insertion, afin de cliquer sur Zone de texte.

Nous dessinons notre zone de texte à l’endroit et à la taille souhaitée, et nous saisissons un texte sur le bouton « Lister les documents » :

Excel formation - Supprimer un classeur de l'historique - 04

Puis, nous effectuons un clic droit sur ce bouton afin de sélectionner la ligne « Affecter une macro ».

Dans la fenêtre qui apparait, nous choisissons la macro que nous venons de créer « listeClasseursHistorique » :

Excel formation - Supprimer un classeur de l'historique - 05

Puis nous validons en appuyant sur le bouton [OK].

Maintenant, il suffit de cliquer sur ce bouton pour voir apparaitre la liste des fichiers présents dans l’historique :

Excel formation - Supprimer un classeur de l'historique - 06

 

   3.2. Supprimer le classeur sélectionné

 

Maintenant, pour supprimer le fichier sélectionné, nous allons devoir créer une nouvelle macro-commande, que nous appelons cette fois-ci « supprimerDeLaListe » :

Sub supprimerDeLaListe()
 
End Sub

Pour commencer, et pour éviter tout risque d’erreur, nous allons nous assurer que l’utilisateur a bien sélectionné une cellule de la colonne A dans laquelle se trouvent les données.

Pour effectuer ce contrôle, il suffit de vérifier que la cellule active, obtenue avec l’objet ActiveCell se trouve bien dans la colonne A, en utilisant la fonction VBA Intersect. Comme nous l’avons vu dans le tutoriel dédié à cette fonction, si deux cellules ou plages de cellules ne se chevauchent pas, alors celle-ci renverra la valeur Nothing.

Et donc dans ce cas-là, nous pourrons afficher un message à l’utilisateur pour lui demander de sélectionner une cellule de la colonne A et nous quitterons juste après la procédure avec un Exit Sub :

    If Intersect(ActiveCell, [a:a]) Is Nothing  Then
        MsgBox "Veuillez sélectionner un fichier à supprimer  de l'historique"
        Exit Sub
    End If

Ensuite, pour supprimer le fichier sélectionné de l’historique, il suffit d’utiliser la méthode Delete sur l’Item dont l’index est retourné par la ligne de la cellule active :

    Application.RecentFiles.Item(c.Row).Delete 

Pour finir, il ne reste plus qu’à recréer la liste des fichiers dans laquelle le fichier a maintenant été effacé en appelant simplement la fonction « listeClasseursHistorique » que nous avons créée un peu plus tôt :

    listeClasseursHistorique

 

4. Comment rendre un classeur invisible aux yeux de l'historique des fichiers récemment ouverts

Comme nous venons de le voir dans les parties précédentes  l'historique des classeurs récemments ouverts permet d’afficher dans le menu Fichier d’Excel, ou de n’importe quelle autre application de la suite Office (Word, PowerPoint, Outlook), les derniers éléments à avoir été ouverts au sein de l’application. Il s’agit d’une option très pratique qui permet de pouvoir accéder rapidement aux fichiers en question.

Mais parfois, il peut arriver que nous souhaitions qu’un classeur en particulier n’apparaisse jamais dans cette liste, pour par exemple pouvoir travailler sur des informations confidentielles, le plus discrètement possible.

Ici, le but sera de rendre ce classeur totalement invisible de cette liste, de manière à ne pas laisser de trace.

Alors évidemment, ici nous allons nous limiter à empêcher l’historique d’enregistrer l’ouverture du classeur, mais pour que la confidentialité soit totale, il faudra également se pencher sur la suppression des traces laissées non plus sur Excel, mais directement au niveau du système d’exploitation.

Si nous souhaitons effacer toute trace de l’ouverture d’un classeur dans cet historique, nous allons devoir passer par le développement d’une petite macro-commande en VBA.

Pour cela, rendez-vous dans l’éditeur de macro VBE en utilisant le raccourci clavier [Alt]+[F11].

Ensuite, pour créer la macro, nous allons insérer un nouveau module, c’est-à-dire une feuille de code vide dans laquelle nous viendrons saisir les lignes de code.

Pour créer un module, nous nous rendons dans le menu Insertion > Module :

Excel formation - rendre classeur - 01

Puis, nous allons créer une nouvelle macro, que nous appelons supprimerFichierDansHistorique.

Pour cela, nous saisissons le mot-clé Sub, suivi du nom de la macro, et nous validons en appuyant sur la touche [Entrée] du clavier :

Sub supprimerFichierDansHistorique()
 
End Sub

Ainsi, tout ce que nous allons saisir entre ces deux lignes sera lancé automatiquement à chaque fois que nous appellerons la macro supprimerFichierDansHistorique.

Cela étant fait, nous allons passer en revue tous les fichiers présents dans l’historique.

Pour cela, nous allons utiliser une boucle For… Each, sur l’objet Application.RecentFiles, que nous avions découvert dans la partie précédente.

Pour commençons donc par créer une variable que nous appelons fichier et qui va nous servir à réaliser cette opération.

Nous typons cette variable en tant qu’objet RecentFile :

    Dim fichier As RecentFile

Puis, nous mettons en place la boucle For… Each :

    For Each fichier In Application.RecentFiles
 
    Next

Ici, la boucle va donc nous retourner chaque élément de la bibliothèque d’objet Application.RecentFiles, directement dans la variable instanciée juste avant.

Pour tester le bon déroulement de la macro, nous pouvons maintenant afficher le nom de chaque classeur présent dans l’historique au sein du débogueur en utilisant l’instruction Debug.Print :

    For Each fichier In Application.RecentFiles
        Debug.Print fichier.Name
    Next

Il ne reste maintenant plus qu’à comparer le nom de ces fichiers avec le nom du classeur actif.

Attention toutefois à une petite subtilité, car comme vous pouvez le constater, en fonction des répertoires d’enregistrement des classeurs, Excel peut enregistrer également le chemin de celui-ci.

Pour détecter si un fichier enregistré dans l’historique correspond bien au fichier actif, nous allons effectuer deux tests :

  • Soit le nom du fichier est précédent d’une barre oblique, et dans ce cas, nous ferons précéder le test d’un astérisque afin de remplacer tout ce qui peut être saisi avant cette barre,
  • Soit ce n’est pas le cas, et dans ce cas nous pourrons effectuer une comparaison du nom complet

Si l’une de ces deux options est validée, alors nous pourrons supprimer le fichier avec la méthode Delete :

Sub supprimerFichierDansHistorique()
    Dim fichier As RecentFile
    
    For Each fichier In Application.RecentFiles
        If fichier.Name Like "*\" &  ActiveWorkbook.Name Or fichier.Name Like ActiveWorkbook.Name Then
            fichier.Delete
        End If
    Next
 
End Sub

 

Maintenant que nous venons de voir comment supprimer le classeur actif de la liste, nous allons devoir utiliser cette macro-commande pour rendre le classeur invisible de l’historique.

Pour cela, nous allons simplement appeler cette macro à l’intérieur d’un évènement.

Un évènement permet en effet de lancer une instruction lorsque quelque chose se passe sur le classeur.

L’évènement qui va nous intéresser ici est Workbook_Open qui comme son nom l’indique va se déclencher automatiquement à l’ouverture du classeur.

Pour mettre en place l’évènement, nous double-cliquons sur la feuille de code ThisWorkbook depuis le navigateur de Projet de VBA, ce qui va permettre d’ouvrir cette feuille :

Excel formation - rendre classeur - 02

Ensuite, pour créer l’évènement, nous utilisons les menus déroulants situés au-dessus de la feuille :

  • Dans le premier, nous choisissons Workbook
  • Et dans le second, nous choisissons Open

Excel formation - rendre classeur - 03

VBE nous ajoute alors automatiquement l’évènement Sub Workbook_Open, depuis lequel nous pourrons appeler la macro que nous avons créée juste avant supprimerFichierHistorique :

Private Sub Workbook_Open()
    supprimerFichierHistorique
End Sub

Par contre, si vous essayez de tester la macro en fermant le classeur, puis en le relançant, il y a fort à parier que celui-ci reste dans l’historique comme si la macro n’avant jamais été lancée…

En vérité, celle-ci s’est bien exécutée, mais au tout démarrage du classeur, avant même qu’Excel n’ait eu le temps de mettre à jour l’historique des fichiers récents

Pour contourner ce problème, nous pouvons temporiser le lancement de la macro-commande pour que celle-ci s’exécute quelques secondes après l’ouverture du classeur en utilisant l’instruction Application.OnTime comme ceci :

Private Sub Workbook_Open()
    Application.OnTime Now() + TimeValue("00:00:03"),  "supprimerFichierHistorique"
End Sub

Ici, le délai fixé à trois secondes permet de contourner le problème, à vous de voir s’il faut l’ajuster, en fonction de votre machine.

 

Article initial publié le 13/11/2019 et mis à jour le 12/05/2022



Articles qui pourraient vous intéresser

L’erreur cachée qui plombe vos tableaux Excel (et comment l’éviter)
Comment entourer automatiquement cellules non conformes Excel sans MF conditionnelle ni formule ?
Comment créer un tableau de bord commercial intelligent avec Excel ?
Comment créer un graphique dessiné à la main avec Excel ?
Comment créer un graphique de distribution en 5 minutes chrono ?
L’astuce Excel pour imprimer le tableau que vous voulez en un clic !
Comment gérer ses comptes sur Excel avec le « Suivi du budget familial »
Comment créer facilement des QR codes sans VBA avec Excel ?
Transformez vos données en graphique tornade interactif facilement sur Excel !
Comment créer un graphique Iceberg dans Excel ?
Comment créer un graphique dynamique en quelques minutes sur Excel sans VBA ni TCD ?
Comment créer des feux de signalisation tricolores dynamiques dans Excel sans VBA ?

Contact - Plan du site - À propos - Contact

© Excelformation.fr 2018-2024 - 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.