Deze VBA-macro slaat de huidige werkmap op en maakt vervolgens een nieuwe werkmap met een op datum gebaseerde bestandsnaam voor de nieuwe week. Het gaat op een elegante manier om met potentiële fouten.
```vba
Sub SaveAndCreateNewWeeklyWorkbook()
Dim wb als werkboek
Dim newWb als werkboek
Dim strBestandsnaam als tekenreeks
Dim strFilePath als tekenreeks
Dim dt als datum
' Haal de huidige werkmap op
Stel wb =ThisWorkbook in
' Haal de huidige datum op
dt =Datum
' Bereken de startdatum van de huidige week (zondag)
dt =dt - Weekdag(dt, vbZondag) + 1
' Formatteer de datum voor de bestandsnaam (JJJJ-MM-DD)
strFileName =Formaat(dt, "JJJJ-MM-DD") &"Inkomen.xlsx"
' Geef het bestandspad op (wijzig dit naar de gewenste locatie)
strFilePath ="C:\Uw\Bestand\Path\" ' <--- WIJZIG DIT IN UW GEWENSTE PAD
'Volledig bestandspad
strFilePath =strFilePath &strFileName
' Sla de huidige werkmap op
Bij fout Hervatten Volgende 'Behandel mogelijke fouten tijdens het opslaan
wb.SaveAs Bestandsnaam:=strFilePath, Bestandsformaat:=xlOpenXMLWorkbook
Als foutnummer <> 0 Dan
MsgBox "Fout bij opslaan werkmap:" &Err.Description, vbCritical
Verlaat sub
Einde Als
Bij fout Ga naar 0
'Maak een nieuwe werkmap
Stel newWb =Werkmappen in.Add
' Sla de nieuwe werkmap op met hetzelfde bestandspad maar een andere datum
dt =dt + 7 'Datum van volgende week
strFileName =Formaat(dt, "JJJJ-MM-DD") &"Inkomen.xlsx"
strFilePath ="C:\Uw\Bestand\Path\" &strFileName ' <--- WIJZIG DIT IN UW GEWENSTE PAD
Bij fout Hervat volgende
newWb.SaveAs Bestandsnaam:=strFilePath, Bestandsformaat:=xlOpenXMLWorkbook
Als foutnummer <> 0 Dan
MsgBox "Fout bij aanmaken nieuwe werkmap:" &Err.Description, vbCritical
newWb.Close SaveChanges:=False 'Sluit zonder op te slaan als er een fout optreedt
Verlaat sub
Einde Als
Bij fout Ga naar 0
'Optioneel:voeg een berichtvenster toe om de voltooiing te bevestigen.
MsgBox "Werkmap opgeslagen en nieuwe wekelijkse werkmap gemaakt.", vbInformation
Einde sub
```
Voordat u start:
1. Wijzig `"C:\Uw\Bestand\Pad\"`: Absoluut cruciaal om deze tijdelijke aanduiding te vervangen door het daadwerkelijke mappad waar u uw Excel-bestanden wilt opslaan. Onjuiste paden leiden tot fouten. Zorg ervoor dat de map bestaat.
2. Open de VBA-editor: Druk in Excel op Alt + F11 om de VBA-editor te openen.
3. Een module invoegen: Ga in de VBA-editor naar Invoegen> Module.
4. Plak de code: Plak de volledige code in de module.
5. Voer de macro uit: Ga terug naar Excel en voer de macro uit (mogelijk moet u deze aan een knop toewijzen of uitvoeren via het tabblad Ontwikkelaars> Macro's).
Hoe het werkt:
* Slaat de huidige werkmap op: De code slaat eerst de actieve werkmap op met een bestandsnaam op basis van de startdatum van de huidige week (zondag).
* Maakt een nieuwe werkmap: Vervolgens wordt een nieuwe, lege werkmap toegevoegd.
* Benoemt en slaat de nieuwe werkmap op: De nieuwe werkmap wordt opgeslagen met een bestandsnaam die is gebaseerd op de begindatum van *volgende* week.
* Foutafhandeling: De instructies 'Bij fout hervatten volgende' en foutcontrole voorkomen dat de macro crasht als er problemen zijn bij het opslaan van bestanden (bijvoorbeeld onvoldoende rechten, het bestand bestaat al). Het biedt informatieve foutmeldingen.
* Bestandsformaat: `xlOpenXMLWorkbook` zorgt voor compatibiliteit met moderne Excel-versies (.xlsx).
Vergeet niet regelmatig een back-up van uw gegevens te maken, omdat geautomatiseerde processen soms onverwachte problemen kunnen tegenkomen. Test deze macro grondig op een voorbeeldbestand voordat u deze met belangrijke gegevens gebruikt. |