• 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.

Mkdir in een macro

Status
Niet open voor verdere reacties.

Tetaphidoep

Gebruiker
Lid geworden
31 mei 2019
Berichten
14
Ik probeer met een macro een nieuwe map aan te maken op de harde schijf.
De macro geeft melding kan pad niet vinden.

Sub Macro1()
'
' Macro1 Macro
' Nieuwe sub map maken
'
If Len(Dir("D:\Voorraadadministratie" & Range("I7"), vbDirectory)) = 0 Then
MkDir "D:\Voorraadadministratie" & Range("I7")
End If

'
End Sub

Ik heb een voorbeeld als bijlage bijgevoegd.

De macro zoals hieronder heeft een week goed gewerkt maar geeft nu een foutmelding.
Er is verder niets veranderd, wie heeft er een idee?



If Len(Dir("D:\Voorraadadministratie" & Range("AW3"), vbDirectory)) = 0 Then
MkDir "D:\Voorraadadministratie" & Range("AW3")
End If

Geeft foutmelding: Fout 76 tijdens uitvoering:
Kan Pad niet vinden
 

Bijlagen

  • Nieuwe map maken.xlsm
    16,8 KB · Weergaven: 26
Laatst bewerkt:
Als de hoofdmap niet bestaat zal je inderdaad die foutmelding krijgen.
 
Moet dat niet zijn:
Code:
Sub Macro1()
'
' Macro1 Macro
' Nieuwe sub map maken
'
If Len(Dir("D:\Voorraadadministratie\" & Range("I7"), vbDirectory)) = 0 Then
MkDir "D:\Voorraadadministratie\" & Range("I7")
End If
 
Of nog flexibeler:
Code:
Sub Macro1()
    Dim Mappen() As String
    Dim Map As String
    Dim i As Integer
    
    ReDim Preserve Mappen(i)
    Mappen(i) = "D:\Voorraadadministratie"
    
    i = i + 1
    ReDim Preserve Mappen(i)
    Mappen(i) = Range("I8")
    
    For i = 0 To UBound(Mappen)
        If i = 0 Then
            Map = Mappen(i)
        Else
            Map = Map & "\" & Mappen(i)
        End If
        If Dir(Map, vbDirectory) = "" Then
            MkDir Map
        End If
    Next i
End Sub
 
Of:
Code:
Sub Macro1()
 CreateObject("shell.application").Namespace("D:").newfolder range("i7") & "\" & range("i8")
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan