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

VBA map en submappen aanmaken

Status
Niet open voor verdere reacties.

AD1957

Verenigingslid
Lid geworden
27 feb 2016
Berichten
2.155
Beste forumleden,

Met onderstaande code maak ik een map voor een nieuw boekjaar.

Code:
Dim mapnaam1 As String
mapnaam1 = "C:\Users\User\Desktop\BOEKHOUDINGEN\BOEKHOUDING " & TextBox1.Value
 If Dir(mapnaam1, vbDirectory) = vbNullString Then MkDir mapnaam1

Nu zou ik graag direct in de nieuw aangemaakte map twee submappen willen aanmaken
met de naam Begrotingen"&textbox1.value en Facturen"&textbox1.value

ik heb het volgende geprobeerd maar krijg dan de foutmelding delen door 0
Code:
Dim mapnaam2 As String
mapnaam2 = "C:\Users\User\Desktop\BOEKHOUDINGEN\BOEKHOUDING " & TextBox1.Value\Begroting" & textbox1.value
 If Dir(mapnaam2, vbDirectory) = vbNullString Then MkDir mapnaam2

ook met andere manieren voor het aanmaken van mappen kom ik niet verder.
Wie helpt
 
Maak er eens Textbox1.Text van in plaats van TextBox1.Value
In de eerste code dus.

Denk eraan dat het hele pad al moet bestaan, m.u.v. de map die je wilt aanmaken.
 
Laatst bewerkt:
Krijg dan de melding "compileerfout syntaxisfout"

sorry heb het veranderd in de tweede code, eerste code moet ik nog aanpassen.
Moet nu echter even weg, laat zo snel mogelijk iets weten
 
Laatst bewerkt:
Plaats dan je document.
 
melding blijft:"compileerfout syntaxisfout"
zal straks even een voorbeeld plaatsen
 
Laatst bewerkt:
Doet het hier prima.
Geen fouten dus.
 
ook als je de on error goto eind en de vlaggetjes weghaalt?????

die had ik er nml. even ingezet
 
Voor mijn test heb ik er dit van gemaakt:
Code:
Private Sub CommandButton1_Click() [COLOR="#008000"]'knop OK[/COLOR]
    Dim mapnaam1 As String
    Sheets("verkoopboek").Range("G1").Value = TextBox1.Text
    [COLOR="#008000"]'mapnaam1 = "C:\Users\User\Desktop\BOEKHOUDINGEN\BOEKHOUDING " & TextBox1.Text[/COLOR]
    mapnaam1 = "C:\Diversen\BOEKHOUDING " & TextBox1.Text
    If Dir(mapnaam1, vbDirectory) = vbNullString Then MkDir mapnaam1
    TextBox1.Value = ""
End Sub
 
Laatst bewerkt:
Dit stukje code werkt bij mij ook.
Het probleem zit in het volgende stuk waarbij ik direct een submap wil aanmaken met mapnaam2
 
In 1x een pad aanmaken kan niet! Dat moet deel voor deel.
 
Zie mijn laatste regel in #2.

Maar die laatste regel klopt inderdaad niet en zou dit moeten worden:
Code:
mapnaam2 = "C:\Users\User\Desktop\BOEKHOUDINGEN\BOEKHOUDING " & TextBox1.Text & "\Begrotingen" & TextBox1.Text
 
Laatst bewerkt:
In 1 keer:

Code:
Sub M_snb()
    CreateObject("shell.application").Namespace("C:").NewFolder "Users\User\Desktop\BOEKHOUDINGEN\BOEKHOUDING " & TextBox1.Text & "\Begrotingen" & TextBox1.Text
End Sub
 
Hallo edmoor,
regel in #2 had ik gelezen.
Was in de veronderstelling dat de map met de 1e code is aangemaakt en dan direct de 2e er achter kan zetten, blijkbaar werkt dat dus niet.
Ik ga eerst maar eens zelf kijken hoe ik dit kan oplossen.
De laatste regel zal ik dan ook nog aanpassen.
 
Zie ook #13 van snb.
 
Hallo snb,
bedankt voor de info, zal dit ook eens gaan testen.
 
Hallo snb,
de code werkt, krijg echter wel een foutmelding nml

"ongeldige procedure-aanroep of ongeldig argument"
 
Ik heb de code nog een stukje uitgebreid, maar de map Facturen wordt niet aangemaakt
Waar gaat het hier fout?
Code:
Sub M_snb()
    CreateObject("shell.application").Namespace("C:").NewFolder "Users\User\Desktop\BOEKHOUDINGEN\BOEKHOUDING " & TextBox1.Text & "\Begrotingen " & TextBox1.Text & "\Facturen " & TextBox1.Text
End Sub
 
Werkt hier weer prima.
Heb je er soms weer een On Error regel in zitten?
 
Laatst bewerkt:
nee, geen on error regel.
En toch wordt bij mij alleen de submap Begrotingen aangemaakt.
Eerst maar eens een nachtje slapen en dan alles nog maar eens controleren
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan