VBA script

Status
Niet open voor verdere reacties.

pvag

Gebruiker
Lid geworden
7 jan 2009
Berichten
60
Beste mensen,

Ik heb een sheet gemaakt waarmee wat verhuurgegevens kunnen worden bijgehouden. Het werkt allemaal zoals ik het wilde op één zaak na. In het VBA script wordt er gekeken of het pad (waar de sheet moet worden opgeslagen) bestaat. In mijn geval is het path D:\Avondverhuur\2017. Als het path niet bestaat, wordt het gemaakt aan de hand van gegevens op een ander werkblad (D:Avondverhuur) met een submap 2017 die met sYear wordt gemaakt. Tot dusverre werkt het nog goed. Mijn kennis van VBA is nihil. Het path wat is aangemaakt op de D:-schijf moet worden gebruikt om de sheets op te slaan. En dat gaat me niet lukken. Als ik in de sheet op de knop "Opslaan en afsluiten" klik wordt de sheet opgeslagen op de locatie die in excel als standaardlocatie is ingevoerd. Wie kan me verder helpen?

CODE
Private Sub OpslaanAfsluiten_Click()

Dim sPad As String
Dim Pad() As String
Dim i As Integer
Dim sYear As String
sYear = CStr(Year(Date))
'' Check of path bestaat anders mappen aanmaken
sPad = Sheets("Param").Range("C6").Value & ("") & sYear
Pad = Split(sPad, "")
sPad = Pad(0)
For i = 1 To UBound(Pad)
sPad = sPad & "" & Pad(i)
If Dir(sPad, vbDirectory) = "" Then
MkDir sPad
End If
Next i

''Het weeknummer halen uit de sheet voor verwerking in de bestandsnaam
Dim sWeekNum As String
sWeekNum = Sheets("Verhuuroverzicht").Range("O2").Value ' is in dit geval 46
sPath = Sheets("Verhuuroverzicht").Range("N2").Value & ".xltm" ' is WK.

ActiveWorkbook.SaveAs Filename:= _
"Week" & " " & sWeekNum, FileFormat:= _
xlOpenXMLTemplateMacroEnabled, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False

Application.Quit
End Sub

\\CODE
 

Bijlagen

  • Week 46.xlsm
    30,9 KB · Weergaven: 34
En waar wordt het "pad" gebruikt in de saveas constructie dan?
 
Beste wampier, het lijkt overtoom wel. Bedankt voor je reactie. Op uw vraag het volgende antwoord. Ja, het path wat is samengesteld uit gegevens die van het werkblad Verhuuroverzicht is het path waar alle zou moeten worden opgeslagen. dus in dit geval D:\Avondverhuur\2017 Het komende jaar zal er automatisch een map (2018) worden aangemaakt op D:\Avondverhuur\
Ik heb diverse dingen geprobeerd om het bestand in voornoemde map te krijgen maar mijn kennis is daarvoor veeeeeel te weinig.
 
Probeer deze maar eens. Zaken die niet worden gebruikt heb ik verwijderd.
Wat is je reden om .xltm als bestands structuur te gebruiken?
Code:
Private Sub OpslaanAfsluiten_Click()
    Dim sWeekNum As String, sPad As String
    Dim Pad() As String
    Dim i As Integer

    [COLOR="#008000"]'Check of path bestaat anders mappen aanmaken[/COLOR]
    Pad = Split(Sheets("Param").Range("C6").Value & ("\") & Year(Date), "\")
    For i = 0 To UBound(Pad)
        sPad = sPad & Pad(i) & "\"
        If Dir(sPad, vbDirectory) = "" Then
            MkDir sPad
        End If
    Next i
    
    [COLOR="#008000"]'Het weeknummer halen uit de sheet voor verwerking in de bestandsnaam[/COLOR]
    [COLOR="#008000"]'sPath = Sheets("Verhuuroverzicht").Range("N2").Value & ".xltm"   ' is WK.[/COLOR]
    sWeekNum = Sheets("Verhuuroverzicht").Range("O2").Value                      [COLOR="#008000"] ' is in dit geval 46[/COLOR]
    
    ActiveWorkbook.SaveAs Filename:= _
        sPad & "Week" & " " & sWeekNum & ".xltm", FileFormat:=xlOpenXMLTemplateMacroEnabled
    
    MsgBox "Het sjabloon is succesvol opgeslagen op: " & vbCrLf & vbCrLf & sPad & _
        vbCrLf & vbCrLf & "onder de naam: " & _
        vbCrLf & vbCrLf & "Week" & " " & sWeekNum, _
        vbOKOnly + vbInformation, "Overzicht avondverhuur"

    [COLOR="#008000"]'Application.Quit[/COLOR]
End Sub
 
Hallo edmoor,

bedankt voor uw inzet. ik ga het zo meteen proberen. Antwoord op uw vraag waarom ik voor opslag als sjabloon kies, is mijn antwoord het volgende. Elke week opnieuw wordt het sjabloon gebruikt voor een nieuwe week. Ik dacht als ik het opsla als worksheet de knop en het VBA script worden gemold bij het opslaan. Als dat niet zo is, dan mag het van mij een andere extentie hebben maar moet wel te bewerken zijn inde nodig.
 
Hallo edmoor,

nogmaals bedank voor je inzet. Je bent een kei. Het werkt nu zoals ik het wilde. Nogmaals mijn dank.
 
Als het voor je werkt dan werkt het, maar ik zou de extensie .xlsm ervoor gebruiken met FileFormat:=xlOpenXMLWorkbookMacroEnabled
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan