Map maken

Status
Niet open voor verdere reacties.

gast0666

Gebruiker
Lid geworden
21 jun 2019
Berichten
90
Beste forumleden,

Ik heb een macro die ik graag aanvul met het opslaan naar een submap.
De hoofdmap staat altijd vast, maar de submap verandert (is een jaartal).

In cel J2 staat de naam van de hoofdmap
In cel J3 staat de naam van het bestand
In cel J4 staat het jaartal

De onderstaande code is niet volledig. De bestandsnaam is correct, maar wordt niet in de juiste submap (map moet overeenkomstig zijn aan cel J4) opgeslagen.

Sub BestandOpslaan()
Dim MyName As String
Dim MyPath As String
MyPath = Range("J2").Value & ""
MyName = Range("j3").Value & "-" & Range("j4").Value
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=MyPath & MyName & ".xlsm"
Application.DisplayAlerts = True
End Sub

Is er iemand die mij kan helpen?

bvd,
 
Laatst bewerkt door een moderator:
Wat nu precies waar staat en hoe het er staat.......?

zet je de \ in de cel?
 
SjonR,
Ik kan de slash beter in de macro opnemen bij het pad (J2).
 
Ik heb een fout gemaakt in het tekstgedeelte.
J1 moet J2 zijn. Enz.
 
Dat kan zo:
Code:
Sub BestandOpslaan()
    ActiveWorkbook.SaveCopyAs Range("J2") & "\" & Range("J3") & "-" & Range("J4") & ".xlsm"
End Sub

Dan blijf je ook in het originele document werken.
Of wil je in het opgeslagen document door gaan?

Wel is het belangrijk dat er in J2, J3 en J4 geen tekens voor komen die niet in een map- en bestandsnaam mogen worden gebruikt.
Het opgegeven pad moet tevens een bestaand pad zijn.

NB.
Het is geen slash (/), maar een backslash (\).
 
Laatst bewerkt:
Map maken en bestand opslaan in xlsm en pdf formaat

Beste forumleden,

Ik wil graag het huidige Excel bestand onder de huidige naam opslaan als xslm én als pdf formaat.

Vervolgens wil ik hetzelfde bestand onder een nieuwe naam opslaan in xlsm formaat, daarbij ook dat er een map, overeenkomstig de waarde in cel J4, wordt aangemaakt.

Het huidige pad bestaat uit de cellen J2 en F1, terwijl het nieuwe pad bestaat uit de cellen J2 en J4.

Ik ben een tijdje bezig geweest maar het lukt me niet en krijg in de macro een foutmelding.

Wie kan mij verder helpen. Zie ook bijlage voor de celinhouden.

De macro:

Sub BestandOpslaan()
Dim MyPath As String
Dim MyName As String
Dim BookyearOld As String
Dim BookyearNew As String
BookyearOld = Range("F1").Value
BookyearNew = Range("J4").Value
MyPathOld = Range("J2") & "" & BookyearOld & ""
MyPathNew = Range("J2") & "" & BookyearNew & ""
MyName = Range("j3" & "-" & "J4")
ActiveWorkbook.SaveAs Filename:=MyPathOld & MyName & ".xlsm"
ActiveWorkbook.SaveAs Filename:=MyPathOld & MyName & ".pdf"
Application.DisplayAlerts = False
Application.DisplayAlerts = True
End Sub
 

Bijlagen

  • Knipsel.JPG
    Knipsel.JPG
    44,7 KB · Weergaven: 56
Daarnaast staat het opslaan als .xlsm al in #5.
Met de PDF er bij:
Code:
Sub BestandOpslaan()
    Bestand = Range("J2") & "\" & Range("J3") & "-" & Range("J4")

    ActiveWorkbook.SaveCopyAs Bestand & ".xlsm"
    ActiveWorkbook.ExportAsFixedFormat xlTypePDF, Bestand & ".pdf"
End Sub
 
Laatst bewerkt:
Map Maken en opslaan nieuw bestand

Beste EdMoor,

Dank voor je reactie.
Is je bijdrage een vervanging van mijn code of een aanvulling?
 
Ter vervanging.
En wat ik in #5 al zei:
Wel is het belangrijk dat er in J2, J3 en J4 geen tekens voor komen die niet in een map- en bestandsnaam mogen worden gebruikt.
Het opgegeven pad moet tevens een bestaand pad zijn.
 
map maken en bestanden opsaan

Beste EdMoor,

Kan de code er dan uiteindelijk zo uitzien?
Graag verneem ik nog je reactie.

Sub BestandOpslaan()
Dim MyPath As String
Dim MyName As String
Dim BookyearOld As String
Dim BookyearNew As String
BookyearOld = Range("F1").Value
BookyearNew = Range("J4").Value
MyPathOld = Range("J2").Value & "" & BookyearOld.Value
MyPathNew = Range("J2").Value & "" & BookyearNew.Value
MyNameOld = Range("j3").Value & "-" & BookyearOld.Value
MyNameNew = Range("j3").Value & "-" & BookyearNew.Value
ThisWorkbook.SaveAs Filename:=MyPathOld & MyNameOld & "-" & BookyearOld & ".xlsm"
Bestand = Range("J2") & "" & Range("J3") & "-" & Range("J4")
ActiveWorkbook.SaveCopyAs Bestand & ".xlsm"
ActiveWorkbook.ExportAsFixedFormat xlTypePDF, Bestand & ".pdf"
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=MyPathNew & MyNameNew & ".xlsm"
Application.DisplayAlerts = True
End Sub

mvg,
 
Laatst bewerkt door een moderator:
Die regels met Application.DisplayAlerts zijn sowieso overbodig en al die Dim opdrachten kunnen eruit als je geen Option Explicit gebruikt.
Test gewoon de Sub die in #8 staat.
Als er dan nog wat extra's moet gebeuren dan laat het hier maar weten.

Gebruik tevens codetags als je code plaatst.
Zie de link in mijn handtekening.
 
Beste forumleden,

Ik kom er nog niet uit.
Heb heel wat heen en weer geschreven en krijg steeds een foutmelding.

De Macro:
Sub BestandOpslaan()
BookyearOld = Range("F1")
BookyearNew = Range("J4")
MyPathOld = Range("J2") & ""
MyNameNew = Range("j3")
Bestand = Range("J2") & "" & Range("J3") & "-" & Range("J4")
ActiveWorkbook.SaveCopyAs Bestand & ".xlsm"
ActiveWorkbook.ExportAsFixedFormat xlTypePDF, Bestand & ".pdf"
Application.DisplayAlerts = False
Application.DisplayAlerts = True
End Sub

Is het ook nog mogelijk om een nieuwe map aan te maken als die nog niet bestaat?

mvg,
 
Laatst bewerkt door een moderator:
Je hebt nog steeds geen codetags gebruikt en verteld ook niet of je de code uit #8 hebt getest en wat daarvan het resultaat was.
 
Dag EdMoor,
Ik ben echt een prille beginner en rommel maar wat aan. Kost veel tijd maar elke succesvolle stap schreeuw ik het bijna van de daken.
Maar begrijp helaas niet je opmerkinhgen #8 en codetags.
Is #8, de achtste regel van boven?
Mvg,
 
Laatst bewerkt door een moderator:
De nummers van de posts staan gewoon rechts in de titelbalk : #8 is het bericht met die nummer ...
En de codetags moet je gewoon lezen hoe het moet - Edmoor heeft je al gezegd dat er een link naar de nodige uitleg in zijn handtekening staat ... Piece of cake, maar je moet het wel even lezen hé ...
 
Bestand opslaan als PDF en XLSX

Beste Edmoor enn DigiCafee,

Dank voor jullie bijdragen. Ik ben er heel blij mee.
Alles naar tevredenheid opgelost.

mvg,
 
Laatst bewerkt door een moderator:
Map maken en bestand opslaan

Beste Edmoor enDigiCafee,

Na het testen van de bestanden kom ik toch tot de ontdekking dat het nieuwe bestand (een nieuw jaar zoals in cel J4 is gezet, wilde ik ook in het pad opnemen.
Dat lukt niet.
Het nieuwe bestand wordt één map hoger opgeslagen.
Na de "" moet er wellicht een map overeenkomst cel J4 komen, maar dat lukt me niet.
Het opslaan als PDF formaat heb ik eerst weggelaten omdat het nogal tijdrovend is.

Code:
Sub BestandOpslaan()
    ActiveWorkbook.Save
    ActiveWorkbook.SaveAs Range("J2") & "\" & Range("J3") & "-" & Range("J4")
End Sub
[CODE/]
 
Je hebt je best gedaan met de codetags zie ik, maar die onderste is fout, dat moet [/CODE] zijn.

En plaats eens een voorbeeld documentje met wat je precies in de betreffende cellen hebt staan.
 
Hallo Edmoor,

Dank voor je reactie.
Ik heb een voorbeeld bestand bijgesloten.

Het lukt me nog niet om het nieuwe bestand op te slaan in een submap.
Zou het kunnen dat de map alsnog wordt aangemaakt?

Ook doe ik hierbij de laatst gewijzigde code.

Code:
Sub BestandOpslaan()
    ActiveWorkbook.Save
    ActiveWorkbook.SaveAs Range("J2") & "\" & Range("J4") & Range("J3") & "-" & Range("J4")
End Sub
 

Bijlagen

  • test.xlsx
    9,1 KB · Weergaven: 45
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan