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

Macro voor backup op weeknummer

Status
Niet open voor verdere reacties.

Koos Timmer

Gebruiker
Lid geworden
1 jul 2007
Berichten
72
Hallo.

Ik ben op zoek naar de mogelijkheid om via een macro een backup te maken op weeknummer+filenaam of andersom.

hoe kan ik dat het beste doen.

Groeten Koos.
 
Probeer eens de zoek functie hier op het forum.
Staat legio voorbeelden op voor het wegschrijven van een document onder een andere naam. Als ik mij niet vergis staat zelf jouw oplossing er ook tussen.

Succes.

ps.
zoek eens op: opslaan (en dan de laatste in je scherm :), Excel bestand opslaan als........ )
 
Laatst bewerkt:
ik zou het niet in excel doen, maar op windowsniveau. als je het bestand niet opent, wordt er ook geen backup gemaakt.

steven
 
Hallo.

Hartelijk dank voor de hulp.

Ik ben na veel lezen tot hier gekomen en dit is dan mijn eerste ervaring met een script.

Ik zal eerst eens toelichten wat de bedoeling is.

Het zou niet mogelijk moeten om de file zonder het op te slaan af te sluiten zodat aangevulde gegevens verloren gaan in de originele file.
dus bij elke nieuwe oproep van de file de laatste resente gegevens.

Dan heb ik nog een probleempje bij het openen van de backup file.
als ik deze weer opsla maakt hij weer een backup.
dit is niet de bedoeling.


Het volgende werkt bij mij:

Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
Dim MyDate, MyFile, MyPath
On Error GoTo verder: 'Als de map al bestaat gewoon verder gaan.
MkDir "OIF Backups" 'Maak map op de schijf aan als die er nog niet is
verder:
MyPath = "OIF Backups"

' Opslaan met datum en tijd (zal altijd uniek zijn).

MyDate = Format(Date, "dddd dd mmmm yyyy ")

' Opslaan met alleen de datum, als een file op dezelfde dag 2x geopend en gesloten
' word zal de eerste save verloren gaan!
' Als de backup file op de zelfde dag geopend wordt zonder de
' macro's uit te zetten loopt excel vast omdat er getracht wordt een file weg
' te schrijven met een naam die het zelfde is al de file die op dat moment geopend is.
' Voorkeur gaat dus uit naar de versie met de time stamp er bij.

' MyDate = Format(Date, "yyyymmdd")
MyFile = MyPath + "\" + "OIF Backup " + MyDate + ".xls"
ActiveWorkbook.SaveAs Filename:=MyFile, FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
Application.DisplayAlerts = True
End Sub



De backup wordt op de volgende manier opgeslagen.

hij maakt vanwaar de file opgestart wordt een subdirectory OIF Backups waar in hij de backup opslaat als OIF Backup woensdag 04 juli 2007

de backup wordt per dag overschreven zonder navraag of dit mag. dit zou ik graag per week willen hebben.

ik heb vervolgens een macro gemaakt met de volgende inhoud :
Sub opslaanenstoppen()
'
' opslaanenstoppen Macro
' De macro is opgenomen op 4-7-2007 door K Timmer.
'

'
ActiveWorkbook.Save
End Sub


nu zoek ik nog de opdracht excel afsluiten. het kruisje ?
en hoe ik de backup file nummer per week.

Groeten Koos
 
Laatst bewerkt:
Hallo Demeter.

Het afsluiten met Application.Quit Werkt priema.

Ik ben nu met de week datum aan de slag.
heb tot nu toe het volgende klaar:

in cell A1 staat de huidige datum =VANDAAG() en in A2 staat de weeknummer =WEEKNUMMER(A2;2) dus het schiet al een beetje op.

nu moet ik deze weeknummer nog zien te verwerken in de backup naam.

Ben al de hele dag aan het lezen en zoeken.

alle hulp is welkom.

Groeten Koos.
 
mmmmmmmmmmmmm,
heb je deze al geprobeert:
Code:
MyFile = MyPath 
& "\" & "OIF Backup " & Sheets(naam van je blad).Range("A2") & ".xls"

ps:
Code:
=WEEKNUMMER(VANDAAG();2)
is ook al voldoende
 
Laatst bewerkt:
Of probeer deze eens in je VBA code te plaatsen

Code:
MyFile = MyPath 
[COLOR="Red"]WeekNr = WorksheetFunction.WeekNum(Now(), 2)[/COLOR]
& "\" & "OIF Backup " & [COLOR="red"]WeekNr[/COLOR] & ".xls"

Code:
WorksheetFunction.
is soieso eentje om goed te onthouden voor je VBA code :)

Succes
 
Dit is wel via VBA en niet via cellen?

Code:
Sub test()
Dim naam As String
  naam = "G:\data\Week" & Format(Format(Date, "ww", vbMonday, vbFirstFourDays), "00") & "_" & Format(Date, "yyyy") & ".xls"
  ActiveWorkbook.SaveAs Filename:=naam, FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=True
End Sub

Wel het Path aanpassen G:\data

Weergegeven als : Week27_2007.xls

Pierre


PS Er is wel een verschil tussen de weeknummers (Amerikaanse of Europese) zie bijlage.
 

Bijlagen

  • Verschil van Weeknummer.zip
    5,5 KB · Weergaven: 57
Laatst bewerkt:
Hallo Demeter.

puf puf


WeekNr = WorksheetFunction.WeekNum(Now(), 2)


Hij geeft hier een error.

Groeten Koos.
 
Hallo JPVS.

Ik heb jou file even ingekeken maar kan die string nergens vinden ?


groeten Koos.
 
Koos,

Ik heb het fout neer gekalkt.
Het moet zijn:
Code:
MyPath = "OIF Backups\"
MyDate = Format(Date, "dddd dd mmmm yyyy ")
WeekNr = WorksheetFunction.WeekNum(Now(), 2)

MyFile = MyPath & "OIF Backup " & WeekNr & ".xls"


Code van Jpvs is zeker ook het uitpluizen waard!!
 
Hallo .

dit is mijn script:


Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
Dim MyDate, MyFile, MyPath
On Error GoTo verder:
MkDir "OIF Backups"
verder:
MyPath = "OIF Backups"
MyDate = Format(Date, "dddd dd mmmm yyyy ")
WeekNr = WorksheetFunction.WeekNum(Now(), 2) Hier blijft het steken
Application.DisplayAlerts = False
MyFile = MyPath & "OIF Backup " & WeekNr & ".xls"
ActiveWorkbook.SaveAs Filename:=MyFile, FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
Application.DisplayAlerts = True
End Sub

ik zal de code van jpvs ook eens uitproberen.

Groeten Koos
 
Hallo.

Evalueren tot hoe ver ben ik.

Ik ben zover dat ik als ik afsluit via het kruisje rechts boven in de hoek het volgende gebeurd.

hij maakt een backup ook met de zelfde tijd of naam ( gewoon overschrijven zonder error)
hij slaat de huidige active excel file op zonder vraag of melding (ook gewoon overschrijven)

Dit werkt allemaal uitstekend met het volgende script:

Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
Dim MyDate, MyFile, MyPath

On Error GoTo verder:
MkDir "OIF Backups"
verder:

MyPath = "OIF Backups"
MyDate = Format(Date, "dddd dd mmmm yyyy ")
MyFile = MyPath + "\" + "OIF Backup " + MyDate + ".xls"

ActiveWorkbook.Save
ActiveWorkbook.SaveAs Filename:=MyFile, FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
Application.DisplayAlerts = True
End Sub


ik ben ten einde met proberen om een backup te maken met weeknummer en
krijg het ook niet voor elkaar om een getal uit een cell van een Blad in de backup file te zetten.

Ik weet het even niet meer.
de optie van jpvs heb ik ook geprobeerd, deze werkt ook niet bij mij.

wat doe ik verkeerd ??

Groeten Koos.
 
Misschien omdat je je WeekNr nog niet hebt gedeclareerd:
Code:
Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
Dim MyDate, MyFile, MyPath
[COLOR="Red"]Dim WeekNr As String[/COLOR]

On Error GoTo verder:
MkDir "OIF Backups"
verder:

MyPath = "OIF Backups"
MyDate = Format(Date, "dddd dd mmmm yyyy ")
[COLOR="red"]WeekNr = WorksheetFunction.WeekNum(Now(), 2)[/COLOR]
MyFile = MyPath + "\" + "OIF Backup " + [COLOR="red"]WeekNr [/COLOR]+ ".xls"

ActiveWorkbook.Save
ActiveWorkbook.SaveAs Filename:=MyFile, FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
Application.DisplayAlerts = True
End Sub
 
Code:
Dim WeekNr As Integer 'String

WeekNr = WorksheetFunction.WeekNum(Now(), 2)
MyFile = MyPath + "\" + "OIF Backup " + CStr(WeekNr) + ".xls"

De CStr zet het om naar een String.
 
Hallo.

Hij brijft hardnekkig op de volgende regel hangen.

WeekNr = WorksheetFunction.WeekNum(Now(), 2)

en als ik nu maar wist hoe ik de bestaande inhoud van een cell uit een blad voor het weg te schrijven backup file kon gebruiken was ik al klaar. dan kan ik immers nog beter uit de voeten qua mogelijkheden.

maar ook dat lukt mij niet.

kan het ook aan excel liggen ?

Groeten Koos.
 
'Weeknum is GEEN werkbladfunctie, het is een Analyse Toolpak functie.

je zou iets als dit kunnen gebruiken.
geeft als resultaat het weeknummer weer nl. 27 voor deze week.

Code:
CurrentDate$ = Now()
WeekNr = DatePart("ww", CurrentDate$, vbMonday, vbFirstFourDays)
MyFile = MyPath + CStr(WeekNr) + ".xls"

Voor het wegschrijven uit een cel.
bv. Sheets("blad1").Range("A1") & "Weeknummer:" & Sheets("Blad1").Range("A2") & ".xls"

Pierre
 
Laatst bewerkt:
Hallo.


ik heb die Analyse Toolpak aanstaan in excel.
en hij geeft ook netjes het weeknummer =WEEKNUMMER(A2;2) in een cell.

Dus begrijp ik het niet.

Koos.
 
Bij mijn eerste post is een bestand bij gevoegd met het verschil van de Amerikaanse en Europese weeknummers.
zie " Verschil van Weeknummer.zip ".

Zet de cursor maar eens op de formules van C2 tot D27?


en je zegt in
A2 staat de weeknummer =WEEKNUMMER(A2;2)

dan moet je formule zijn =WEEKNUMMER(A1;2) want in A1 staat de huidige datum =VANDAAG() anders maak je een kringverwijzing?


Pierre
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan