HomeExcel in PraktijkWindows mappen maken met excel

Windows mappen maken met excel

Windows mappen aanmaken kan tijdrovend zijn, zeker als je veel bestanden hebt. Onlangs moest ik een mapstructuur voor een digitaal dossier maken met één hoofdmap en meerdere submappen, waarbij alleen de hoofdmap een afwijkende naam had. Handmatig aanmaken was onmogelijk met zo’n 20.000 records. Gelukkig kon ik de informatie vanuit Excel gebruiken en vond ik een macro die dit volledig automatiseerde.

Structuur Windows mappen maken met excel

Om alles handmatig te doen was onbegonnen werk met zo’n 20.000 records. De informatie kon ik in excel omzetten dus uiteindelijk startte ik de zoektocht naar een macro die daar mappen van zou kunnen maken. En die vond ik!

Data in Excel klaarmaken

Voordat je de macro kunt gebruiken, moet de data in Excel correct worden ingesteld. In een voorbeeldbestand zie je hoe de mappenstructuur eruit moet zien, inclusief eventuele sub-submappen.

Data in excel bestand klaar zetten Windows mappen

Macro uitvoeren

Na het starten van de macro kies je waar je de mappen wilt opslaan. Daarna maakt de macro alle hoofd- en submappen automatisch aan. Met deze methode heb ik uiteindelijk een klanten­dossier en een digitale agenda opgebouwd, maar je kunt het bestand natuurlijk ook gebruiken voor muziek, foto’s of andere documenten.

Windows mappen gemaakt vanuit Excel

Zoals je ziet heb ik hier zelfs nog een sub sub map gemaakt. Hierin kun je doorgaan zolang je wilt. Met deze methode heb ik uiteindelijk een klanten dossier gemaakt en een digitale agenda voor opslaan van gegevens belangrijk voor die datum. Je kunt het bestand uiteraard ook gebruiken voor bijvoorbeeld muziek catalogus, foto’s en documenten.

Zodra je de macro start, vraagt deze eerst waar je de mappen wilt opslaan.

De macro’s voor windows mappen

De gehele macro bestaat uit 3 delen.

Gedeelte 1: Windows mappen aanmaken

De macro MappenMakenMetExcel doorloopt alle rijen en kolommen in je Excel-sheet. De macro controleert elke cel op een waarde. Als de cel een waarde bevat, maakt de macro een map in de opgegeven hoofdmap en nest automatisch de submappen volgens de structuur in je Excel-bestand.

Sub MappenMakenMetExcel()

 baseFolder = BrowseForFolder
 If (baseFolder = False) Then
 Exit Sub
 End If
 Set fs = CreateObject("Scripting.FileSystemObject")
 For iRow = 1 To 6500
 pathToCreate = baseFolder
 leafFound = False
 For iColumn = 1 To 6500
 currValue = Worksheets(ActiveCell.Worksheet.Name).Cells(iRow, iColumn).Value
 If (currValue = "" And leafFound) Then
 Exit For
 ElseIf (currValue = "") Then
 parentFolder = FindParentFolder(iRow, iColumn)
 If (parentFolder = False) Then
 Exit For
 Else
 pathToCreate = pathToCreate & "\" & parentFolder
 If Not (fs.FolderExists(pathToCreate)) Then
 fs.CreateFolder (pathToCreate)
 End If
 End If
 Else
 leafFound = True
 pathToCreate = pathToCreate & "\" & currValue
 If Not (fs.FolderExists(pathToCreate)) Then
 fs.CreateFolder (pathToCreate)
 End If
 End If
 Next
 If (leafFound = False) Then
 Exit For
 End If
 Next
End Sub

Gedeelte 2: Parent folder vinden

De functie FindParentFolder zoekt de bovenliggende map voor een submap. Zo kan de macro submappen correct plaatsen in de hiërarchie, ook bij meerdere niveaus.

Function FindParentFolder(row, column)
 For iRow = row To 0 Step -1
 currValue = Worksheets(ActiveCell.Worksheet.Name).Cells(iRow, column).Value
 If (currValue <> "") Then
 FindParentFolder = CStr(currValue)
 Exit Function
 ElseIf (column <> 1) Then
 leftValue = Worksheets(ActiveCell.Worksheet.Name).Cells(iRow, column - 1).Value
 If (leftValue <> "") Then
 FindParentFolder = False
 Exit Function
 End If
 End If
 Next
End Function

Gedeelte 3: Folder browser

De functie BrowseForFolder opent een venster zodat de gebruiker kan kiezen waar de mappen worden opgeslagen. De functie controleert of de gekozen map geldig is en voorkomt fouten.

Function BrowseForFolder(Optional OpenAt As Variant) As Variant
 'Function purpose: To Browser for a user selected folder.
 'If the "OpenAt" path is provided, open the browser at that directory
 'NOTE: If invalid, it will open at the Desktop level

Dim ShellApp As Object

'Create a file browser window at the default folder
 Set ShellApp = CreateObject("Shell.Application"). _
 BrowseForFolder(0, "Please choose a folder", 0, OpenAt)
 'Set the folder to that selected. (On error in case cancelled)
 On Error Resume Next
 BrowseForFolder = ShellApp.self.Path
 On Error GoTo 0

'Destroy the Shell Application
 Set ShellApp = Nothing

'Check for invalid or non-entries and send to the Invalid error
 'handler if found
 'Valid selections can begin L: (where L is a letter) or
 '\\ (as in \\servername\sharename. All others are invalid
 Select Case Mid(BrowseForFolder, 2, 1)
 Case Is = ":"
 If Left(BrowseForFolder, 1) = ":" Then GoTo Invalid
 Case Is = "\"
 If Not Left(BrowseForFolder, 1) = "\" Then GoTo Invalid
 Case Else
 GoTo Invalid
 End Select

Exit Function

Invalid:
 'If it was determined that the selection was invalid, set to False
 BrowseForFolder = False

End Function

Met deze methode kun je eenvoudig en snel grote mappenstructuren in Windows opbouwen vanuit Excel. Of het nu gaat om klantendossiers, agenda’s, muziek, foto’s of documenten: met deze macro bespaar je enorm veel tijd en minimaliseer je fouten. Experimenteer met je eigen Excel-bestand en ontdek hoe efficiënt het aanmaken van mappen kan zijn!

~ Advertentie ~

= POST ( 'Gerelateerd' )

Tabel filteren tijdens typen (VBA)

Maak directe meerdere invoervelden om je tabel te filteren op meerdere criteria zonder al je filters te klikken.

Yahtzee scoreblok in Excel

Maak een Yahtzee score formulier in Excel. Hou je score bij, zie hoeveel je nog moet gooien en begin overnieuw met een reset knop.

Lege rijen invoegen Excel met VBA code

Lege rijen invoegen in Excel kan veel tijd kosten als je dit handmatig doet, vooral bij grote bestanden met duizenden regels. Gelukkig kun je dit proces automatiseren met een VBA-macro.

Wachtwoord Excel werkblad beveiliging kraken

Met de volgende macro code is het mogelijk om de beveiliging van een met wachtwoord beveiligd werkblad op te heffen.
~ Advertentie ~

8 REACTIES

  1. Hoi Theo, als ik de macro start en een map kies krijg ik de MS VBA fout melding dat hij het pad niet kan vinden, Verschillende mappen etc geprobeerd maar krijg het niet werkende, doe ik wat verkeerd?

  2. Eb, en Theo is heb precies het zelfde van alles geprobeerd andere computer geprobeerd. Eerst lukt het wel toen eens kwam deze melding.

  3. Theo, is heb hetzelfde als Eb, Ik had het werkend maar ineens krijg ik die melding waar kan dat aanliggen denk je. Ik heb ook al een andere computer geprobeerd maar hetzelfde ik krijg de foutmelding.

  4. Theo, ik heb het opgelost zat denk ik de naam of structuur van een van de mappen weet het niet precies maar die is nu handmatig aangemaakt. Thx i.i.g.

  5. Hoi Theo Schipper
    Ik zou in mijn submap een bestand willen zetten. Is dat mogelijk? En weet u hoe dat ik dat dan zou moeten doen?
    Alvast bedankt.

    Gr Theo

LAAT EEN REACTIE ACHTER

Vul alstublieft uw commentaar in!
Vul hier uw naam in

= WEEK ('Top 5')

DATUM() functie

De Excel DATUM functie maakt van afzonderlijke waarden voor jaar, maand en dag een geldige datum. Je kunt deze functie gebruiken om dynamisch datums samen te stellen op basis van andere celwaarden in je werkblad.

VANDAAG() functie

De VANDAAG functie in Excel retourneert de huidige datum welke telkens wordt bijgewerkt als het werkblad wordt geopend of gewijzigd. In de formule VANDAAG zijn geen argumenten nodig.

JAAR() functie

De JAAR functie in Excel geeft als resultaat het jaar van een datum als een 4-cijferig getal. Het jaar wordt uitgedrukt als een geheel getal tussen 1900 en 9999.

Wachtwoord Excel werkblad beveiliging kraken

Met de volgende macro code is het mogelijk om de beveiliging van een met wachtwoord beveiligd werkblad op te heffen.

SOM() functie

Samenvatting SOM functie De Excel SOM functie geeft de som...
~ Advertentie ~

= FUNCTIE ('Top 10')

~ Advertentie ~

= EXCEL ( 'categorieën' )

~ Advertentie ~