Snel een heleboel directories aanmaken m.b.v. Excel

Status
Niet open voor verdere reacties.

MrTinkertrain

Gebruiker
Lid geworden
4 sep 2005
Berichten
79
Het komt soms wel eens voor dat je een heleboel mappen (directories) moet aanmaken.
Dat kan natuurlijk allemaal met het handje, maar het kan ook een stuk eenvoudiger en vooral veel sneller :cool:
Code:
Sub MakeDirs()
Dim MyRange As String
MyRange = Range("C1")
Dim vFolderList As Variant, i As Long
vFolderList = Range("A1:A" & Cells(Rows.Count, "A").End(xlUp).Row).Value
On Error Resume Next
For i = 1 To UBound(vFolderList, 1)
    MkDir MyRange & vFolderList(i, 1)  'amend the directory as required (it must exist)
Next
End Sub

In dit voorbeeld staat de naam van de root-directory waarin alle mappen moeten worden aangemaakt in cel C1 (bijvoorbeeld C:\Test\ )
De namen van de mappen die moeten worden aangemaakt, staan in kolom A.
Let op: de directory die je in cel C1 neerzet moet wel bestaan, anders gebeurt er niks :p

Voor de volledigheid nog even de werkwijze hoe je met deze code moet "omgaan"

1. Kopieer bovenstaande code
2. Open de Visual Basic Editor d.m.v. ALT+F11
3. Ga naar Invoegen - Module
4. Plak vervolgens de code in het witte scherm rechts
5. Keer weer terug naar Excel d.m.v. ALT+Q
6. Druk vervolgens ALT+F8 , selecteer de macro "MakeDirs" en klik op Uitvoeren

Klaar is Kees :D
 
In dit voorbeeld staat de naam van de root-directory waarin alle mappen moeten worden aangemaakt in cel C1 (bijvoorbeeld C:\Test\ )

Met deze code in ThisWorkbook te plaatsen worden de mappen gemaakt. "Documents en klanten" eventueel aan te passen.

Code:
Private Sub Workbook_Open()
On Error Resume Next
 MkDir "C:\Documents"
 MkDir "C:\Documents\klanten"
On Error GoTo 0
MsgBox ("C:\Documents\klanten zijn gemaakt bij het openen")
End Sub



Uit de macro van Kees :

Wat ik wel raar vind is dat de namen van kolomA een voorvoegsel krijgen nl. klanten
Cel A1 staat XX dit word dan klantenXX, Cel A2 staat WW word klantenWW?

Is dit te vermijden?


JP
 
Laatst bewerkt:
submap

via jullie ben ik eind op weg de code werkt bij mij!!

alleen nu nog het volgende

Hoe krijg ik in elk mapje die excel aangemaakt heeft (volgens bovenstaand voorbeeld) een submap?

om voorbeeldje te geven:

ik geef in rij A de map namen in, waar excel de mappen van aan maakt. vervolgens moet in die mappen een submap komen. De naam van de "submap" moet overal het zelfde zijn
 
Laatst bewerkt:
Wat ik wel raar vind is dat de namen van kolomA een voorvoegsel krijgen nl. klanten
Cel A1 staat XX dit word dan klantenXX, Cel A2 staat WW word klantenWW?

Is dit te vermijden?


JP

geef je cel C1 ook een naam? als je hier niks invuld heb je daar geen last van, bij mij werkt het


alleen nu moet ik nog in elke map die aangemaakt is een nog een map zien te krijgen. Deze "submap" moet in elke map dezelfde naam hebben. weet jij hoe dat werkt? en of dit kan
 
Code:
Const Main = "C:\Personeel\" 'Naam van de hoofdmap
Const SubMain = "Test" 'Naam van map in submap
Sub MaakMappen()
    Dim q1 as Variant, i as Integer
    q1 = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)  'de submappen
    If Len(Dir(Main)) = 0 Then MkDir Main 'kijk of de startfolder bestaat...
    For i = LBound(q1) To UBound(q1)
        MkDir Main & q1(i, 1)
        MkDir Main & q1(i, 1) & "\" & SubMain
    Next i
End Sub
 
Super!! Dank je wel!
 
Laatst bewerkt door een moderator:
Twee Excel kolommen in bestandnaam

Ik heb inmiddels de code geprobeerd, deze werkt perfect!

Is het ook mogelijk om in plaats van een kolom, twee kolommen verwerkt te krijgen in de mapnaam? Dus Kolom A en Kolom B?
 
Plaats eens een voorbeeldbestandje met waarden in kolom A en B en hoe de dir en subdir eruit zouden moeten zien.
 
De uitleg om snel mappen op een schijf aan te maken is perfect en het werkt.
Alleen zou ik in een map ook nog aparte subdirectories willen aanmaken.
Dus niet alleen de hoofdmappen, maar daarnaast ook nog de submap.
Bijv.

in Excel
A1 Muziek B1 Pop
A2 Muziek B2 Klassiek
A3 Muziek B3 Jazz
A4 Film B4 Actie
A5 Film B5 TV serie
A6 Film B6 Muziek

In veld A staan dus de hoofdmappen Film en Muziek, de submappen staan in veld B van Muziek moet dan komen Pop, Klassiek en Jazz

Daarnaast zou ik ook nog graag willen weten of er een batch bestand is die een file kan verplaatsen naar een map.
Bijv. in D:\muziek staan allemaal MP3 bestanden.
Ik weet dat in deze map een bestand staat die heet ABBA.mp3 deze wil ik middels een script laten verplaatsen naar de map die ik zojuist heb aangemaakt D:\Muziek\Pop

Is daar ook een script voor ?

Hoor het graag..... ben benieuwd !
 
Code:
Sub MaakMappen()
    Dim q1 As Variant, i As Integer
    On Error Resume Next
    q1 = Range("A1:B" & Cells(Rows.Count, 1).End(xlUp).Row)
    For i = LBound(q1) To UBound(q1)
        If Dir("D:\" & q1(i, 1)) = "" Then MkDir "D:\" & q1(i, 1)
        MkDir "D:\" & q1(i, 1) & "\" & q1(i, 2)
    Next i
End Sub
 
Ik sluit deze topic. Oude topics mogen met rust gelaten worden. Deze is oorspronkelijk van 2009, dus al zeer lang niet actueel meer.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan