Kan ik een lijst in Excel maken van alle filenamen in een bepaalde map?

Ik heb een map met ruim 6000 epub's (digitale boeken voor de E-reader) en wil hiervan graag een complete lijst hebben in een Excel document, zonder dat ik ruim 6000 maal alle schrijvers en titelnamen moet overtikken. Is dit mogelijk en zo ja, hoe doe ik dit dan?

Toegevoegd na 1 minuut:
De filenamen beginnen allemaal met de naam van de schrijver en dan de titel van het boek.

bv: Stephen King - Desperation.epub

Weet jij het antwoord?

/2500

Het beste antwoord

Ik zou het als volgt doen. In onderstaand voorbeeld ga ik ervan uit dat jouw boeken in de map D:\vanalles\nogwat\boeken staan. 1. Open een opdrachtregel. Dat kan door de Windows-knop en de R in te drukken (tegelijk, zoals je ook Control-R zou indrukken), dan cmd te typen, en dan op Enter te drukken. 2. Type in: D: en dan Enter. 3. Type in: cd \vanalles\nogwat\boeken en dan Enter. 4. Type in: dir *.epub >lijst.txt en dan Enter. 5. Type in: notepad lijst.txt en dan Enter. 6. Je zit nu in Kladblok. Kopieer alle regels waarin je boeken staan (dat zijn alle regels behalve een paar bovenste en onderste regels) van Kladblok naar Excel. Kopieer ze bijvoorbeeld naar kolom A van een leeg werkblad. Nu ga ik ervan uit dat jouw gekopieerde tekst in de cellen A1 t/m A6000 (of zoiets) staat. 8. Zet in cel B1 de volgende formule: =DEEL(A1; 30; LENGTE(A1)-34) Je moet hier even spelen met de getallen 30 en 34. Maak eerst die 30 groter of kleiner, zodat het resultaat in cel B1 met de naam van de schrijver begint. Maak dan de 34 groter of kleiner om nog precies de hele titel in cel B1 te krijgen; ik vermoed dat dat tweede getal 4 groter moet zijn dan het eerste getal (in mijn voorbeeld dus 34, wat 4 meer is dan 30). Met wat experimenteren kom je er zo uit. 9. Zet daarna in cel C1 de volgende formule: =VIND(" - "; B1) 10. Zet nu in cel D1 de volgende formule: =LINKS(B1; C1-1) Cel D1 zal nu de auteur bevatten. 11. Zet nu in cel E1 de volgende formule: =DEEL(B1; C1+3; LENGTE(B1)-C1-7) Cel E1 zal nu de titel bevatten. 12. Kopieer nu de formules in cellen B1 t/m E1 naar alle volgende regels. Kolom D zal nu telkens de auteur bevatten, kolom E de titel.   Toegevoegd na 5 minuten:   Ik zit nog wat te experimenteren, en daarbij ontdek ik een manier om één stap over te slaan. Als je in stap 4 het volgende intypt: dir /b *.epub >lijst.txt dan kun je in Kladblok *alle* regels kopiëren omdat de nutteloze bovenste en onderste regels er nu niet meer zijn. Vervolgens kun je *alle* regels van Kladblok direct naar kolom B van je spreadsheet kopiëren. Je kunt nu de ingewikkelde stap 8 overslaan, en direct verdergaan met stap 9.  

je kunt een simpel stukje VBA code toevoegen en dit linken aan een knop op je werkblad. Daarmee kun je het bestand automatisch bijwerken zonder omweg via kopieer en plakacties. Sub Example1() Dim objFSO As Object Dim objFolder As Object Dim objFile As Object Dim i As Integer 'Create an instance of the FileSystemObject Set objFSO = CreateObject("Scripting.FileSystemObject") 'Get the folder object Set objFolder = objFSO.GetFolder("jouw driveletter:jouwfoldernaam") i = 1 'loops through each file in the directory and prints their names and path For Each objFile In objFolder.Files 'print file name Cells(i + 1, 1) = objFile.Name 'print file path Cells(i + 1, 2) = objFile.Path i = i + 1 Next objFile End Sub

Stel zelf een vraag

Ben je op zoek naar het antwoord die ene vraag die je misschien al tijden achtervolgt?

/100