Opgelost Meerdere mappen

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

Oude leerling

Gebruiker
Lid geworden
30 aug 2010
Berichten
566
Geacht forum,
Ik wil een bestand wegschrijven naar het volgende adres
Biljarten 2025 dit is mapje "mapnaam"

In deze map zit een mapje "Ronde1" weergegeven door Sheets("Standen").Range("C5")

En in het mapje Ronde1 zit het mapje "Resultaten"
in deze map wil ik het bestand "Resultaat" & Range("A1") & " " & Format(Range("E7") & ".xlsm") opslaan
Ik kom er niet uit
Gaarne uw hulp

Biljarten 2025(mapje) -- Ronde1(mapje)--Resultaten(mapje)--resultaat(het bestand)


Code:
mapnaam = Left(ThisWorkbook.Path, 2) & "\Biljarten " & Sheets("Nieuwe ronde").Range("C3")
--
Code:
 Filename:= _
 mapnaam & "/" & Sheets("Standen").Range("C5") & "/" & Resultaten & "Resultaat" & Range("A1") & " " & Format(Range("E7") & ".xlsm")
Range("A1").Select
 
Beter plaats je een voorbeeld bestandje.
 
De combinatie van het gebruik van een slash en backslash zal er ook geen goed aan doen.
 
Het werkt wel, maar ik vind het ook niks.
Een backslash (\) is de standaard.
 
Hierbij een testbestandje
Het word uitgevoerd vanaf usb-stick
Er moet op deze Usb-stick nog wel een mapje aangemaakt worden met de naam "Biljarten 2025"
en met daarin een mapje "Ronde1" en weer daarin een mapje "Resultaten"
 

Bijlagen

Slashes gewijzigd in backslashes.
Je huidige code komt dit uit:
Code:
C:\Biljarten 2025\Ronde 1\ResultaatDinsdagochtend 14-1-2025.xlsm
Wat is daar niet goed?
 
Ik heb iets fout gedaan in de macro van het test bestandje
Omdat het blad "Nieuwe ronde" niet aanwezig is moet

Code:
mapnaam = Left(ThisWorkbook.Path, 2) & "\Biljarten " & Sheets("Nieuwe ronde").Range("C3")

gewijzigd worden in

Code:
mapnaam = Left(ThisWorkbook.Path, 2) & "\Biljarten " & 2025

Als antwoord op je vraag
Het bestand woord opgeslagen in "Ronde1" , moet opgeslagen worden in "Resultaten"
 
Ik volg het even niet.
Maar je kan eenvoudig in het Direct venster je wijzigingen testen.
 
Er moet op deze Usb-stick nog wel een mapje aangemaakt worden met de naam "Biljarten 2025"
en met daarin een mapje "Ronde1" en weer daarin een mapje "Resultaten"
Test het eens.
De mappen worden automatisch aangemaakt op je USB stick indien niet aanwezig en het bestand daarin geplaatst.

Code:
Sub hsv()
Dim it As Object
With Sheets("standen")
  For Each it In CreateObject("Scripting.FileSystemObject").drives
    If it.drivetype = 1 And it.isready Then
   c00 = "Biljarten " & .Range("D3") & "\" & .Range("C5") & "\Resultaten\"
     CreateObject("shell.application").Namespace(it.driveletter & ":").newfolder c00
ThisWorkbook.SaveCopyAs it.driveletter & ":\" & c00 & Format(.Range("E7"), "dd-mmmm-yyyy") & ".xlsm"
     Exit For
    End If
  Next it
End With
End Sub
 
edmoor,
Ik heb de code vereenvoudigd

Code:
ActiveWorkbook.SaveCopyAs Filename:= _
          mapnaam \ Ronde1 \ Resultaten \ "Resultaat" & Range("A1") & " " & Format(Range("E7") & ".xlsm")

Wat moet ik doen om het bestandje opgeslagen te krijgen in de map "Resultaten
 
Zo kan het ook, niet bestaande mappen worden automatisch aangemaakt:
Code:
Sub Afsluiten()
    mapnaam = Left(ThisWorkbook.Path, 2) & "\Biljarten " & Sheets("Nieuwe ronde").Range("C3")
    MaakMap mapnaam
    mapnaam = mapnaam & "\" & Sheets("Standen").Range("C5")
    MaakMap mapnaam
    mapnaam = mapnaam & "\Resultaten"
    MaakMap mapnaam
    filenaam = mapnaam & "\" & Range("A1") & " " & Format(Range("E7") & ".xlsm")
    ActiveWorkbook.SaveCopyAs Filename:=filenaam
    MsgBox "Bestand opgeslagen als " & vbCrLf & filenaam, vbInformation, "Melding"
End Sub

Function MaakMap(mapnaam)
    If Dir(mapnaam, vbDirectory) = "" Then MkDir mapnaam
End Function
 
HSV,
Helemaal goed!
Werkt perfect
Edmoor bedankt voor de support
Jullie zijn allebei kanjers
Weer wat geleerd.
Vriendelijke groet , Jaap
 
In plaats van

Code:
it.driveletter & ":\"

volstaat

Code:
it.rootfolder
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan