Extraction de noms de fichiers dans une feuille de calcul (Microsoft Excel)
Carol a un répertoire avec environ 1000 fichiers avec des noms tels que YR1905-LIC12345-Smith, Harry-Brown, Mary. Elle aimerait mettre tous ces noms de fichiers (pas les fichiers eux-mêmes) dans une feuille de calcul et séparer les noms au tableau de bord. Ainsi, l’exemple de nom de fichier occuperait en fait quatre cellules sur une seule ligne. Carol pense que cela prendra une macro pour accomplir, mais elle ne sait pas comment accéder aux noms de fichiers dans cette macro.
Vous pouvez, bien sûr, utiliser une macro pour ce faire, mais vous n’avez pas besoin d’utiliser une macro. Vous pouvez, à la place, utiliser une vieille astuce de l’ère DOS pour obtenir ce dont vous avez besoin.
Pour accéder à l’invite de commande si vous utilisez une version ultérieure d’Excel, tapez simplement «invite de commande» (sans les guillemets) dans la zone de recherche à côté de l’icône Windows dans la barre des tâches. Si vous utilisez une ancienne version d’Excel, l’invite de commande est accessible via Windows: Démarrer | Tous les programmes | Accessoires | Invite de commandes. À l’invite de commande, naviguez jusqu’à ce que vous vous trouviez dans le répertoire contenant les fichiers. Supposons, pour cet exemple, que vous essayez d’obtenir une liste des fichiers de ce répertoire:
c:\Users\e07482\My Documents\rnp
Pour accéder à ce répertoire, entrez cette commande à l’invite de commande:
chdir "\Users\e07482\My Documents\rnp"
Vous devez utiliser les guillemets autour du répertoire en raison de l’espace dans le nom du chemin. Ensuite, tapez la commande suivante pour voir, à l’écran, la liste des fichiers:
dir /b /a-d
La partie « / a-d » signifie « ne pas lister les répertoires ». Si vous êtes satisfait de ce que vous voyez à l’écran, vous pouvez l’envoyer au fichier en utilisant ce qui suit:
dir /b /a-d > filelist.txt
Cela crée un fichier texte (filelist.txt) qui contient une liste de tous les fichiers dans le répertoire en cours. Maintenant, dans Excel, vous pouvez suivre ces étapes:
-
Affichez la boîte de dialogue Ouvrir. (Dans Excel 2007, cliquez sur le bouton Office, puis sur Ouvrir. Dans Excel 2010, cliquez sur l’onglet Fichier du ruban, puis sur Ouvrir. Dans Excel 2013, cliquez sur l’onglet Fichier du ruban, cliquez sur Ouvrir, puis sur Ordinateur et enfin Parcourir. Dans les versions ultérieures d’Excel, cliquez sur l’onglet Fichier du ruban, puis sur Parcourir.)
-
À l’aide de la liste déroulante Fichiers de type au bas de la boîte de dialogue, indiquez que vous souhaitez ouvrir les fichiers texte (.prn; .txt; * .csv).
-
Recherchez et sélectionnez le fichier filelist.txt que vous avez créé à l’invite de commande.
-
Cliquez sur Ouvrir. Excel démarre l’Assistant d’importation de texte, affichant la boîte de dialogue Étape 1 sur 3. (Voir la figure 1.)
-
Assurez-vous que le choix Délimité est sélectionné, puis cliquez sur Suivant. Excel affiche la boîte de dialogue Étape 2 sur 3.
-
Assurez-vous de spécifier un tiret comme délimiteur. (Vous devrez cliquer sur Autre, puis entrer un tiret comme délimiteur.)
-
Cliquez sur Terminer. Votre fichier est importé et cassé au niveau des tirets, comme vous le souhaitez.
Les étapes ci-dessus sont assez faciles à accomplir, en particulier si vous n’avez besoin d’obtenir la liste des fichiers dans Excel que de temps en temps. Si vous devez le faire plus régulièrement, vous devriez probablement chercher un moyen de le faire en utilisant une macro. La macro suivante fonctionnera très rapidement:
Sub GetFileNames() Dim sPath As String Dim sFile As String Dim iRow As Integer Dim iCol As Integer Dim splitFile As Variant 'specify directory to use - must end in "\" sPath = "C:\" iRow = 0 sFile = Dir(sPath) Do While sFile <> "" iRow = iRow + 1 splitFile = Split(sFile, "-") For iCol = 0 To UBound(splitFile) Sheet1.Cells(iRow, iCol + 1) = splitFile(iCol) Next iCol sFile = Dir ' Get next filename Loop End Sub
Lorsque vous exécutez la macro, assurez-vous qu’il n’y a rien dans la feuille de calcul actuelle. (Tout ce qui s’y trouve sera écrasé.) De plus, vous devez modifier le chemin du répertoire affecté à la variable sPath vers le début de la macro.
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (11144) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365. Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:
link: / excel-Pulling_Filenames_into_a_Worksheet [Extraction des noms de fichiers dans une feuille de travail]
.