Note: The other languages of the website are Google-translated. Back to English
Inloggen  \/ 
x
or
x
Registreer  \/ 
x

or

 Hoe kan ik controleren of een map bestaat en zo niet maken?

Heeft u ooit geprobeerd te controleren of een map al dan niet bestaat uit een Excel-werkblad? In dit artikel zal ik het hebben over het controleren of een map in een opgegeven pad bestaat, zo niet, dan wordt de map automatisch onder het pad aangemaakt.

Controleer of een map bestaat in een specifiek bestandspad met VBA-code

Maak de map als deze niet bestaat in een specifiek bestandspad met VBA-code


pijl blauw rechts bel Controleer of een map bestaat in een specifiek bestandspad met VBA-code

De volgende VBA-code kan u helpen om te controleren of een map in een specifiek bestandspad bestaat, doe dit als volgt:

1. Houd de ALT + F11 toetsen om de te openen Microsoft Visual Basic voor toepassingen venster.

2. Klikken Invoegen > Moduleen plak de volgende code in het Module Venster.

VBA-code: controleer of een map bestaat in een specifiek bestandspad:

Sub Test_Folder_Exist_With_Dir()
'Updateby Extendoffice
    Dim sFolderPath As String
    sFolderPath = "C:\Users\DT168\Desktop\Test folder"
    If Right(sFolderPath, 1) <> "\" Then
        sFolderPath = sFolderPath & "\"
    End If
    If Dir(sFolderPath, vbDirectory) <> vbNullString Then
        MsgBox "Folder exist", vbInformation, "Kutools for Excel"
    Else
        MsgBox "Folder doesn't exist", vbInformation, "Kutools for Excel"
    End If
End Sub

Opmerking: In de bovenstaande code moet u het mappad en de naam wijzigen C: \ Users \ DT168 \ Desktop \ Testmap aan uw nodig.

3. Druk vervolgens op F5 sleutel om deze code uit te voeren, krijg je de volgende resultaten:

doc map bestaat 1


pijl blauw rechts bel Maak de map als deze niet bestaat in een specifiek bestandspad met VBA-code

Controleer of een map bestaat in een bestandspad, zo niet, om deze onder dit specifieke bestandspad te maken, kan de volgende VBA-code u helpen om deze taak te voltooien.

1. Houd de ALT + F11 toetsen om de te openen Microsoft Visual Basic voor toepassingen venster.

2. Klikken Invoegen > Moduleen plak de volgende code in het Module Venster.

VBA-code: maak een map als deze niet bestaat in een bestandspad:

Sub MakeMyFolder()
'Updateby Extendoffice
    Dim fdObj As Object
    Application.ScreenUpdating = False
    Set fdObj = CreateObject("Scripting.FileSystemObject")
    If fdObj.FolderExists("C:\Users\DT168\Desktop\Test folder") Then
        MsgBox "Found it.", vbInformation, "Kutools for Excel"
    Else
        fdObj.CreateFolder ("C:\Users\DT168\Desktop\Test folder")
        MsgBox "It has been created.", vbInformation, "Kutools for Excel"
    End If
    Application.ScreenUpdating = True
End Sub

Opmerking:: In de bovenstaande code moet u het mappad en de naam wijzigen C: \ Users \ DT168 \ Desktop \ Testmap aan uw nodig.

3. Na het plakken van de code, en druk op F5 sleutel om het uit te voeren:

(1.) Als de map bestaat, verschijnt er een promptvenster zoals in de volgende schermafbeelding:

doc map bestaat 2

(2.) Als de map niet bestaat, wordt deze in één keer onder het specifieke pad gemaakt en verschijnt er een promptvenster om u eraan te herinneren dat de map is gemaakt, zie screenshot:

doc map bestaat 3


De beste tools voor kantoorproductiviteit

Kutools voor Excel lost de meeste van uw problemen op en verhoogt uw productiviteit met 80%

  • visfuik: Snel invoegen complexe formules, grafieken en alles wat je eerder hebt gebruikt; Versleutel cellen met wachtwoord; Maak een mailinglijst en stuur e-mails ...
  • Super Formula-balk (bewerk eenvoudig meerdere regels tekst en formule); Lay-out lezen (gemakkelijk grote aantallen cellen lezen en bewerken); Plakken in gefilterd bereik...
  • Voeg cellen / rijen / kolommen samen zonder gegevens te verliezen; Gespleten cellen inhoud; Combineer dubbele rijen / kolommen... Voorkom dubbele cellen; Vergelijk Ranges...
  • Selecteer Dupliceren of Uniek Rijen; Selecteer lege rijen (alle cellen zijn leeg); Super zoeken en fuzzy zoeken in veel werkboeken; Willekeurige selectie ...
  • Exacte kopie Meerdere cellen zonder de formuleverwijzing te wijzigen; Maak automatisch verwijzingen naar meerdere bladen; Plaats kogels, Selectievakjes en meer ...
  • Extraheer tekst, Tekst toevoegen, Verwijderen op positie, Ruimte verwijderen; Paging-subtotalen maken en afdrukken; Converteren tussen celinhoud en opmerkingen...
  • Super filter (bewaar en pas filterschema's toe op andere bladen); Geavanceerd sorteren per maand / week / dag, frequentie en meer; Speciaal filter door vet, cursief ...
  • Combineer werkmappen en werkbladen; Tabellen samenvoegen op basis van sleutelkolommen; Gegevens splitsen in meerdere bladen; Batch Converteer xls, xlsx en PDF...
  • Meer dan 300 krachtige functies. Ondersteunt Office / Excel 2007-2019 en 365. Ondersteunt alle talen. Eenvoudig te implementeren in uw onderneming of organisatie. Gratis proefperiode van 30 dagen met volledige functies. 60 dagen geld-terug-garantie.
kte tabblad 201905

Office-tabblad Brengt een interface met tabbladen naar Office en maakt uw werk veel gemakkelijker

  • Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in, Publisher, Access, Visio en Project.
  • Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster in plaats van in nieuwe vensters.
  • Verhoogt uw productiviteit met 50% en vermindert elke dag honderden muisklikken voor u!
officetab onderkant
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    viriato74 · 2 months ago
    How to create folder in desktop with vba whenever the excel book is opened, if exist, ignore.
    Message if create new folder, silent if the folder exist.

    Private Sub Workbook_Open()

    Dim cOb As Variant
    Dim FolderName As String, FolderExists As String
    FolderName = "C:\Users\" & Environ("username") & "\Desktop\MyFolder\" '--->Change folder name to suit.
    FolderExists = Dir(FolderName, vbDirectory)

    Application.ScreenUpdating = False

    If FolderExists = vbNullString Then
    MsgBox "The desktop folder doesn't exist. Creating a new folder now.", vbExclamation, "INFORMATION"
    cOb = CreateObject("wscript.shell").specialfolders("Desktop") & "\" & "MyFolder" '--->Change folder name to suit.
    MkDir cOb
    Else: Exit Sub
    End If

    Application.ScreenUpdating = True

    End Sub
  • To post as a guest, your comment is unpublished.
    Joao · 2 months ago
    How to create folder in desktop with vba whenever the excel book is opened, if exist, ignore.
    Message if create new folder, silent if the folder exist.


    Private Sub Workbook_Open()

    Dim cOb As Variant
    Dim FolderName As String, FolderExists As String
    FolderName = "C:\Users\AAAAA\Desktop\A New Folder" '---->Change folder name to suit. Change the AAAAA to your requirement.
    FolderExists = Dir(FolderName, vbDirectory)

    Application.ScreenUpdating = False

    If FolderExists = vbNullString Then
    MsgBox "The desktop folder doesn't exist. Creating a new folder now.", vbExclamation, "INFORMATION"
    cOb = CreateObject("wscript.shell").specialfolders("Desktop") & "\" & "A New Folder" '--->Change folder name to suit.
    MkDir cOb
    Else: Exit Sub
    End If

    Application.ScreenUpdating = True

    End Sub

  • To post as a guest, your comment is unpublished.
    German · 1 years ago
    excelente, me sirvió mucho el Objeto. Uso para carpetas como archivos. Muchas gracias
  • To post as a guest, your comment is unpublished.
    Mike · 2 years ago
    Hi, This works great, would there be any chance that the folder name used when checking if a folder already exists is derived from a cell within the spreadsheet, say A2??

    I use a template spreadsheet which is updated automatically from another source, so cell A2 constantly changes which requires new folders being created in the same name.

    Also, could there be such a command which does the above but also saves the active spreadsheet in the found / created folder?

    Any hope? TIA
  • To post as a guest, your comment is unpublished.
    felipe · 2 years ago
    I'm running this macro, but in the step to create the folder, the process goes down.

    can you help me????


    'Comprobar si la carpeta existe

    Dim ruta As String
    Dim libro As String

    M = ActiveWorkbook.Name

    ruta = Application.Workbooks(M).Sheets("Diccionario").Range("B5").Value

    If Right(ruta, 1) <> "\" Then
    ruta = ruta & "\"
    End If
    If Dir(ruta, vbDirectory) <> vbNullString Then
    MsgBox "Folder exist, please continue"
    Else
    MsgBox "Folder doesn't exist"
    End If

    'Crea la carpeta que necesitas

    Dim fdObj As Object
    Dim folder As String

    folder = Application.Workbooks(M).Sheets("Dicionario").Range("B5").Value (here is where the process falls)

    Application.ScreenUpdating = False
    Set fdObj = CreateObject("Scripting.FileSystemObject")
    If fdObj.FolderExists(folder) Then
    MsgBox "Found it, pleace continue."
    Else
    fdObj.CreateFolder (folder)
    MsgBox "It has been created."
    End If
    Application.ScreenUpdating = True
  • To post as a guest, your comment is unpublished.
    Kyffer · 2 years ago
    Super Thanks!
  • To post as a guest, your comment is unpublished.
    Roger · 2 years ago
    Thanks Man, work amazing
  • To post as a guest, your comment is unpublished.
    Bengbeng · 2 years ago
    This is really helpful! thanks!
  • To post as a guest, your comment is unpublished.
    Kenneth · 3 years ago
    Great article. Just what I was looking for :)
  • To post as a guest, your comment is unpublished.
    Alok · 3 years ago
    It's reflecting an error @ fdObj.CreateFolder ("C:\Users\DT168\Desktop\Test folder")
    • To post as a guest, your comment is unpublished.
      skyyang · 3 years ago
      Hello, Alok,
      The above codes works well in my Excel workbook, the "C:\Users\DT168\Desktop\Test folder" path is my computer path, you should change the folder path to your own.
      Thank you!