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

Bestand opslaan op meerdere plaatsen tegelijk

Status
Niet open voor verdere reacties.

Evelthoven

Gebruiker
Lid geworden
26 sep 2006
Berichten
690
Vorige week heb ik een vraag gesteld en die is opgelost met het antwoord van Harry, echter na het sluiten van deze vraag is er daarna nog een aanvullende vraag en daarom open ik hiervoor nu een nieuwe vraag.

De code die ik nu gebruik werkt perfect:
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
 With ThisWorkbook
 .SaveCopyAs "V:\06-Supply Chain Management\002 Logistics\Transport vanaf wk 01-2012.xls"
 End With
End Sub

Mijn vraag is nu of het mogelijk is om de bestandsnaam dynamisch te maken.
Het excel bestand wordt steeds opgeslagen als transport vanaf wk .....
Voorbeeld: Als ik nu op H:\ het bestand bewerkt heb in week 1 en ik sla hem op in week 2 als transport vanaf wk 02-2012.xls dan neemt hij de macro ook mee, maar er staat nog steeds transport vanaf wk 01-2012. Is het mogelijk dat nu ook de goede naam gebruikt wordt in de macro omdat anders het originele bestand overschreven wordt ?

Misschien een moeilijke vraag maar ik hoop dat ik het duidelijk heb uitgelegd.

Gr.
Eric
 
Als ik het goed begrijp gebruik je het bestand van de week daarvoor,bewerk je het en sla je het daarna op met de huidige weeknummer. Als dit het geval is kan je de 01, 02 ...enz vervangen door een functie die het huidige weeknummer berekent en heb je alzo steeds het juiste bestand.
Deze in een standaardmodule
Code:
Function IsoWeek(d1)
  IsoWeek = Format(d1, "ww", 2) - IIf(Format("04-01-" & Year(d1), "ww", 2) = 2, 1, 0)
  If IsoWeek = 0 Then IsoWeek = 53
End Function

En deze in ThisWorkbook
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
 With ThisWorkbook
 .SaveCopyAs "V:\06-Supply Chain Management\002 Logistics\Transport vanaf wk " & _
            IIf(Len(IsoWeek(Date)) = 1, 0 & IsoWeek(Date), IsoWeek(Date)) & "-2012.xls"
 End With
End Sub
 
Laatst bewerkt:
Bedankt voor de reactie.
Ik ga het vanavond uittesten.
Ik hoop dat het gaat lukken.
 
Ik heb nog een aanvullende vraag over dit onderwerp.
Hoe komt de code er uit te zien als de naam van het excelbestand op de H-schijf automatisch gekopieerd moet worden op de V-schijf. Dus alles is steeds hetzelfde behalve de naam van het XLS-bestand.
Stel dat ik hem op zou slaan als: TEST.XLS dan moet hij deze naam ook overnemen op de V-schijf.

Alvast bedankt.
 
Zijn er nog mensen die enig idee hebben om dit op te lossen ? Anders zal ik de vraag onopgelost afsluiten. (heb een mailtje ontvangen of de vraag op opgelost gezet kan worden).
 
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Const cPath = "V:\06-Supply Chain Management\002 Logistics\"
fName = "Transport vanaf wk " & IIf(Len(IsoWeek(Date)) = 1, 0 & IsoWeek(Date), IsoWeek(Date)) & "-2012.xls"
    With ThisWorkbook
        .SaveAs fName
        .SaveCopyAs cPath & fName
    End With
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan