• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

meerdere mappen aanmaken

Status
Niet open voor verdere reacties.

DClewis

Gebruiker
Lid geworden
25 feb 2020
Berichten
50
Ik wil graag meerdere mappen aanmaken met VBA als deze nog niet bestaan op de schijf.
Als een map wel bestaat mag deze niet overschreven worden.

Ik heb wel al wat gevonden van o.a.OctaFish :
Code:
Dim sPath As String
 Dim sPad As String
 Dim Pad() As String
 Dim i As Integer
 Dim sYear As String
 sYear = CStr(Year(Date))
    
   sPad = Sheets("Param").Range("D5").Value & "\"
    Pad = Split(sPad, "\")
    sPad = Pad(0)
    For i = 1 To UBound(Pad)
        sPad = sPad & "\" & Pad(i)
        If Dir(sPad, vbDirectory) = "" Then
        MkDir sPad
        End If
    Next i
   
   sPad = Sheets("Param").Range("D6").Value & "\"
    Pad = Split(sPad, "\")
    sPad = Pad(0)
    For i = 1 To UBound(Pad)
        sPad = sPad & "\" & Pad(i)
        If Dir(sPad, vbDirectory) = "" Then
        MkDir sPad
        End If
    Next i

Deze code maakt 2 mappen aan , getest en werkt perfect.
Maar ik moet de controle op minimaal 20 mappen uitvoeren en dit worden er meer .
Kan dat dan anders?
Ik heb wat geprobeerd met .Range ("A3:A21") maar dat is niet gelukt helaas.
 
Laatst bewerkt:
Je code iets compacter:
Code:
For Rij = 5 To 6
   sPad = Sheets("Param").Range("D" & Rij).Value & "\"
    Pad = Split(sPad, "\")
    sPad = Pad(0)
    For i = 1 To UBound(Pad)
        sPad = sPad & "\" & Pad(i)
        If Dir(sPad, vbDirectory) = "" Then
        MkDir sPad
        End If
    Next i
Next Rij
Als D7, D8 etc.... ook gevuld zijn, dan die 6 in je code aanpassen in een hoger getal.
 
Hij doet het wel maar als ik de code nogmaals uitvoer gaat de code: MkDir sPad in het geel

De padnaam is correct want tot tot regel 173 gaat het goed
Heeft het soms wat te maken met de hoeveelheid mappen die hij aan moet maken?
Ik krijg bij regel 175 fout 76 kan het pad niet vinden.
 
Laatst bewerkt:
Het is waarschijnlijk het aantal mappen waarop hij vastloopt.
Als ik namelijk de waardes kleiner maak in de code doet hij het wel.
Zou te maken kunnen hebben met het feit dat ik de mappen op een netwerkschijf plaats?
Hoe los ik dit op?
 
Laatst bewerkt:
Het splitsen van folders doet vermoeden dat ten onrechte veel opslagplaatsen voor gegevens gecreëerd worden.
Met unieke kenmerken (bijv. jaar/maand/klantID) in bestandsnamen kunnen bestanden sneller/eenvoudiger opgeslagen worden.
 
Laatst bewerkt:
SNB en Conseclusie heel erg bedankt.
Ik heb bij de .Value & "" het vetgedrukte weggehaald en nu doet hij het .
Ben hier heel blij mee! :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan