Ga naar hoofdinhoud

Maak meerdere mappen en submappen op basis van een lijst met gegevens in Excel

Stel dat u een lijst met personeelsnamen binnen een werkbladbereik heeft en dat u voor elk een afzonderlijke map wilt maken om hun informatie op te slaan. Het handmatig aanmaken van elke map kan tijdrovend zijn. Er zijn echter efficiënte methoden om dit proces te versnellen. In deze handleiding deel ik verschillende manieren om snel mappen te genereren op basis van de opgegeven celwaarden.

Maak mappen op basis van celwaarden

Maak mappen en submappen op basis van celwaarden met VBA-code


Maak mappen op basis van celwaarden

In dit gedeelte onderzoeken we verschillende methoden in detail en bieden we uitgebreide stapsgewijze instructies om snel en moeiteloos mappen te maken op basis van een lijst met celwaarden.

Maak mappen uit een lijst met behulp van de MD-opdracht en Kladblok

Een lijst vanuit Excel omzetten in mappen met behulp van de MD-opdracht en Kladblok is een slimme truc die eenvoudige batchscripting combineert met de vaardigheid van Excel om dingen georganiseerd te houden. Deze methode is ideaal als u snel veel mappen wilt maken, zonder dat u dit allemaal met de hand hoeft te doen. Hier is een stapsgewijze handleiding om deze taak te volbrengen:

Stap 1: Gebruik de MD-opdracht om formules te maken

Kopieer of typ de volgende formule in een lege cel naast uw eerste celwaarde (bijvoorbeeld B1) en sleep vervolgens de vulgreep naar beneden om de formule op al uw lijstitems toe te passen.

="MD "&A1

Stap 2: Kopieer en plak de formules in een Kladblok-bestand

  1. Media CTRL + C om de cellen te kopiëren met de MD-opdrachtformule.
  2. Openen blocnote en druk op Ctrl + V om de opdrachten in een nieuw bestand te plakken.

Stap 3: Sla het Kladblok-bestand op als .bat-bestand

Klik Opslaan als van het Dien in tabblad in Kladblok, in het Opslaan als dialoogvenster, kies een map waarin u meerdere mappen wilt maken en geef vervolgens een naam voor dit bestand met a . Beat verlenging. Klik ten slotte Bespaar knop. Zie screenshot:

Stap 4: Dubbelklik op het .bat-bestand om meerdere mappen te genereren

  1. Sluit het Kladblok-bestand en navigeer naar de map waarin u eerder het .bat-bestand hebt opgeslagen.
  2. Wees nu getuige van de magie: dubbelklik op het bestand en je zult zien dat er in één keer meerdere mappen worden aangemaakt. Zie de demo hieronder:
 

Maak mappen uit een lijst met behulp van een krachtige tool - Kutools voor Excel

Met de machtigen Kutools for Excel's Maak mappen van celinhoud Met deze functie kunt u nu eenvoudig en snel mappen maken vanuit een Excel-lijst. Maar het stopt niet bij alleen basismappen; Met Kutools kunt u ook in één keer complexe structuren met submappen met meerdere niveaus maken. Met slechts een paar eenvoudige stappen kunnen gegevens uit Excel worden omgezet in een georganiseerd mappensysteem, waardoor uw productiviteit aanzienlijk wordt verhoogd.

Note: Als u dit wilt gebruiken Maak mappen van celinhoud functie, alstublieft download en installeer Kutools voor Excel kopen.

Na het installeren van Kutools for Excel, Klik dan Koetools Plus > Import / Export > Maak mappen van celinhoud om de te openen Maak mappen van celinhoud dialoog venster:

  1. Selecteer de celwaarden waarop u mappen wilt maken op basis van;
  2. Klik vervolgens op de knop om de doelmap op te geven waarin u de mappen wilt opslaan;
  3. Klik ten slotte op OK knop.

Resultaat:

Kutools verwerkt de lijst van uw blad en maakt een map aan voor elk item op de opgegeven bestemming. Navigeer naar de doelmap om het resultaat te bekijken. Zie schermafbeelding:

Tips:
  1. Deze handige functie kan ook helpen maak mappen samen met hun submappen zoals je nodig hebt. Om dit te doen, moet u de gewenste map- en submapnamen in de cellen invoeren, waarbij u het backslash-teken (\) gebruikt om elk niveau te scheiden. De inhoud van elke cel fungeert als leidraad voor het instellen van de gewenste structuur van mappen en submappen.

    Pas vervolgens de Maak mappen van celinhoud functie worden alle mappen en hun submappen met succes aangemaakt. Zie schermafbeelding:
  2. Om deze functie toe te passen, alstublieft download en installeer Kutools voor Excel kopen.
 

Maak mappen uit een lijst met behulp van VBA-code

Het gebruik van VBA-code in Excel kan de vervelende taak van het maken van mappen uit een lijst transformeren in een snel, geautomatiseerd proces. In deze sectie wordt uitgelegd hoe u VBA-code toepast om mappen te genereren.

Stap 1: Open de VBA-module-editor en kopieer de code

  1. Houd de toets ingedrukt ALT + F11 toetsen in Excel, en het opent het Microsoft Visual Basic voor toepassingen venster.
  2. Klik Invoegen > Moduleen plak de volgende code in het Module Venster.
    VBA-code: maak mappen op basis van een lijst met celwaarden
    Sub CreateFoldersFromSelection()
    'Updateby Extendoffice
        Dim FolderPath As String
        Dim Cell As Range
        Dim SelectedRange As Range
        Dim FolderName As String
        On Error Resume Next
        Set SelectedRange = Application.InputBox("Select the range with folder names", "Kutools for Excel", Type:=8)
        If SelectedRange Is Nothing Then Exit Sub
        On Error GoTo 0
        
        With Application.FileDialog(msoFileDialogFolderPicker)
            .Title = "Select the destination Folder"
            .AllowMultiSelect = False
            If .Show <> -1 Then Exit Sub
            FolderPath = .SelectedItems(1) & "\"
        End With
        
        For Each Cell In SelectedRange
            FolderName = FolderPath & Cell.Value
            If Cell.Value <> "" And Not FolderExists(FolderName) Then
                MkDir FolderName
            End If
        Next Cell
    End Sub
    
    Function FolderExists(ByVal Path As String) As Boolean
        On Error Resume Next
        FolderExists = (GetAttr(Path) And vbDirectory) = vbDirectory
        On Error GoTo 0
    End Function
    

Stap 2: Voer de code uit

  1. Druk na het plakken van deze code op F5 toets om deze code uit te voeren. Selecteer in het promptvenster de celwaarden waaruit u mappen wilt maken. En klik dan OK.
  2. Vervolgens in het volgende Selecteer de doelmap geeft u het doelpad op om de gemaakte mappen uit te voeren. En klik dan OK knop, zie screenshot:

Resultaat:

Nadat u de VBA-code hebt uitgevoerd, gaat u naar de doelmap om het resultaat te bekijken. Daar vindt u de nieuw aangemaakte mappen, die elk overeenkomen met een item uit uw Excel-lijst. zie schermafdruk:

Tips:
  1. Als er dubbele vermeldingen in de cellen voorkomen, zal het uitvoeren van de code ertoe leiden dat er slechts één map wordt gemaakt voor die duplicaten.
  2. Als u merkt dat u deze code regelmatig gebruikt, kunt u overwegen uw werkmap op te slaan in Excel-werkmap met ingeschakelde macro's formaat. Door deze actie blijft de code in de werkmap behouden, zodat u deze in de toekomst direct kunt uitvoeren zonder dat u de code opnieuw hoeft in te voeren of te importeren.

Maak mappen en submappen op basis van celwaarden met VBA-code

Af en toe komt u misschien in een situatie terecht waarin u niet alleen mappen moet genereren, maar ook de bijbehorende submappen, allemaal gebaseerd op de gegevens in Excel-cellen. Om deze taak te volbrengen, zal ik hier een VBA-code introduceren.

Stap 1: Bereid de gegevens voor

Eerst moet u de gegevens invoeren zoals in het onderstaande screenshot wordt getoond, plaats de namen van de hoofdmap in de eerste kolom en de namen voor de submappen in de tweede kolom.

Stap 2: Open de VBA-module-editor en kopieer de code

  1. Houd de toets ingedrukt ALT + F11 toetsen in Excel, en het opent het Microsoft Visual Basic voor toepassingen venster.
  2. Klik Invoegen > Moduleen plak de volgende code in het Module Venster.
    VBA-code: maak op mappen en submappen gebaseerde celwaarden
    Sub CreateFoldersAndSubfoldersWithUserInput()
    'Updateby Extendoffice
        Dim Rng As Range
        Dim Cell As Range
        Dim basePath As String
        Dim fldrPicker As FileDialog
        Dim FolderPath As String, subfolderPath As String
        On Error Resume Next
        Set Rng = Application.InputBox("Select the range of cells (two columns: one is folder column, another s subfolder column):", "Kutools for Excel", Type:=8)
        If Rng Is Nothing Then Exit Sub
        On Error GoTo 0
        Set fldrPicker = Application.FileDialog(msoFileDialogFolderPicker)
        With fldrPicker
            .Title = "Select the Base Folder Path"
            .AllowMultiSelect = False
            If .Show <> -1 Then Exit Sub
            basePath = .SelectedItems(1)
        End With
        If Right(basePath, 1) <> "\" Then basePath = basePath & "\"
        For Each Cell In Rng.Columns(1).Cells
            If Not Cell.Value = "" Then
                FolderPath = basePath & Cell.Value
                If Not FolderExists(FolderPath) Then MkDir FolderPath
                If Not Cell.Offset(0, 1).Value = "" Then
                    subfolderPath = FolderPath & "\" & Cell.Offset(0, 1).Value
                    If Not FolderExists(subfolderPath) Then MkDir subfolderPath
                End If
            End If
        Next Cell
    End Sub
    
    Function FolderExists(FolderPath As String) As Boolean
        On Error Resume Next
        FolderExists = (GetAttr(FolderPath) And vbDirectory) = vbDirectory
        On Error GoTo 0
    End Function
    

Stap 3: Voer de code uit

  1. Druk na het plakken van deze code op F5 toets om deze code uit te voeren. Selecteer in het promptvenster de celwaarden waaruit u mappen wilt maken. En klik dan OK.
  2. Geef in het volgende pop-outvenster het doelpad op om de gemaakte mappen uit te voeren. En klik dan OK knop, zie screenshot:

Resultaat:

Nadat u de VBA-code hebt uitgevoerd, gaat u naar de doelmap om het resultaat te bekijken. U zult zien dat de mappen en hun respectieve submappen, zoals bepaald door de celwaarden, met succes zijn aangemaakt, zoals in het volgende screenshot wordt getoond:

Tips:
  1. Deze code is alleen beschikbaar om alleen de hoofdmappen en hun submappen op het eerste niveau te maken.
  2. Als u merkt dat u deze code regelmatig gebruikt, kunt u overwegen uw werkmap op te slaan in Excel-werkmap met ingeschakelde macro's formaat. Door deze actie blijft de code in de werkmap behouden, zodat u deze in de toekomst direct kunt uitvoeren zonder dat u de code opnieuw hoeft in te voeren of te importeren.

Gerelateerde artikelen:

  • Maak een lijst van alle mappen en submappen in Excel
  • Heeft u ooit last gehad van dit probleem waarbij alle mappen en submappen van een opgegeven map in een werkblad worden weergegeven? In Excel is er geen snelle en handige manier om de naam van alle mappen in een specifieke map tegelijk te krijgen. Dit artikel kan u helpen om met de taak om te gaan.
  • Kopieer of verplaats bestanden van de ene map naar de andere op basis van een lijst
  • Als u een lijst met bestandsnamen in een kolom in een werkblad heeft en de bestanden zich in een map op uw computer bevinden. Maar nu moet u deze bestanden verplaatsen of kopiëren waarvan de namen in het werkblad worden vermeld van hun oorspronkelijke map naar een andere zoals in het volgende screenshot. Hoe kon je deze taak zo snel mogelijk voltooien in Excel?
  • Hernoem meerdere bestanden van een map
  • Misschien hebben de meesten van ons te kampen met dit probleem dat we meerdere bestanden in een map moeten hernoemen. Als we de bestandsnamen een voor een hernoemen, worden we gek als er honderden of duizenden bestanden in die map staan. Zijn er goede functies voor ons om deze taak uit te voeren?
Comments (63)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
níže CZ verze

EN:

A better way to do this in a few seconds is to use cmd (.bat file)

If you have a list of names in excel, add the word MKdir in front of the name (folder name) and if it contains a space put the name in quotes. Then just copy it to notepad, save as and add the .bat extension. Once you have this, substitute the .bat file in the folder where it wants to be created and you're done.

If you want the cmd not to close write at the end of the puase like below

Here is the 3 word code *5* :

start
________
MKdir "Pixie Pin"

pause
________
end


this creates a folder named Pixie Pin in the folder where the command was run

CZ:

Lepší způsob jak to udělat během par sec. je použít cmd (.bat soubor)

Pokud máte seznam jmen v excelu, doplňte pomocí vzorečku slovo MKdir před jmeno (název složky) a pokud obsahuje mezeru dejte název do uvozovek. Poté stačí jen zkopírovat do oznámkového bloku (NotePad), dát uložit jako a dopsat příponu .bat . Jakmile toto máte, supsťte .bat soubor ve složce kde chce aby se vytvořili a máte to.

Pokud chcete aby se cmd nezavřelo napište na konec puase jako je níže

Zde je ten 3 slovný kód *5* :

start
________
MKdir "Pixie Pin"

pause
________
konec


toto vytvoří složku s názvem Pixie Pin ve složce kde byl příkaz spuštěn
This comment was minimized by the moderator on the site
This worked really well, even for someone with zero experience with VBA :-)
Would it be possible to adapt the macro or extend the macro to also create hyperlinks to the folders in the selected cells?
So for instance, Cell A3 is selected and you run the macro and the folder is created. Would it be possible to make cell A3 a hyperlink to the folder by expanding on the macro instead of doing that manually?
This comment was minimized by the moderator on the site
Hello, Marloes
To create hyperlinks for the cell values, the following vba code may help you:

First, please select the cell values, and then run this code, and select a folder for outputting the folders.

Sub MakeFoldersAndAddHyperlinksWithFolderSelection()
    Dim Rng As Range
    Dim maxRows, maxCols, r, c As Integer
    Dim folderPath As String
    Dim baseFolderPath As String
    Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFolderPicker)
    
    With fd
        If .Show = -1 Then
            baseFolderPath = .SelectedItems(1) & "\"
        Else
            MsgBox "No folder selected. Operation Cancelled."
            Exit Sub
        End If
    End With
    
    Set Rng = Selection
    maxRows = Rng.Rows.Count
    maxCols = Rng.Columns.Count
    
    For c = 1 To maxCols
        For r = 1 To maxRows
            folderPath = baseFolderPath & Rng.Cells(r, c).Value
            If Len(Dir(folderPath, vbDirectory)) = 0 Then
                MkDir folderPath
                On Error Resume Next
                ActiveSheet.Hyperlinks.Add Anchor:=Rng.Cells(r, c), Address:=folderPath, TextToDisplay:=Rng.Cells(r, c).Value
                On Error GoTo 0
            End If
        Next r
    Next c
End Sub


Please have a try, thank you!
This comment was minimized by the moderator on the site
please, i need that same macro but instead of saving them as folders, i need it to save as Excels.
This comment was minimized by the moderator on the site
is it possible to introduce a condition where if that condition is met the module can create 2 folders (each using a different path)?
if the first list of folders is in the A column then the condition occurs in the U column. The conditional criteria is whether the cell is empty or not.
if the condition is not met the module only makes one folder based on the selection.
This comment was minimized by the moderator on the site
Hi, a_c, sorry I have not found a method can solve this job yet.
This comment was minimized by the moderator on the site
Thank you very much
This comment was minimized by the moderator on the site
Thanks a lot! Your VBA code is really super
This comment was minimized by the moderator on the site
Is it possible to import data from a word to excel on colors algorythme? So, I spell the cities with red and countries with blue in a word, and the to import only these to excel. I don’t know if I made myself clear. Thanks
This comment was minimized by the moderator on the site
Thank you, this has saved me literally days of work.
This comment was minimized by the moderator on the site
Hello,


For the following code it shows error in

MkDir (ActiveWorkbook.Path & "\" & Rng(r, c))



It says Runtime error 76 path not found



Can someone please help me with this?

There are no unsupported characters in the file path.
Not sure what could be the problem

Thanks for the help!
This comment was minimized by the moderator on the site
thank you , time saved
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations