|
Cette macro VBA enregistrera le classeur actuel, puis créera un nouveau classeur avec un nom de fichier basé sur la date pour la nouvelle semaine. Il gère les erreurs potentielles avec élégance.
```vba
Sous SaveAndCreateNewWeeklyWorkbook()
Dim wb comme classeur
Dim newWb en tant que classeur
Dim strFileName As String
Dim strFilePath As String
Dim dt comme date
' Récupérer le classeur actuel
Définir wb =ThisWorkbook
'Obtenir la date actuelle
dt =Date
' Calculer la date de début de la semaine en cours (dimanche)
dt =dt - Jour de la semaine (dt, vbDimanche) + 1
' Formater la date du nom de fichier (AAAA-MM-JJ)
strFileName =Format(dt, "AAAA-MM-JJ") &"Revenu.xlsx"
' Spécifiez le chemin du fichier (remplacez-le par l'emplacement souhaité)
strFilePath ="C:\Votre\File\Path\" ' <--- CHANGEZ CECI PAR VOTRE CHEMIN SOUHAITÉ
' Chemin complet du fichier
strFilePath =strFilePath &strFileName
' Enregistrer le classeur actuel
En cas d'erreur Reprendre Suivant 'Gérer les erreurs potentielles lors de l'enregistrement
wb.SaveAs Nom de fichier :=strFilePath, FileFormat :=xlOpenXMLWorkbook
Si Err.Number <> 0 Alors
MsgBox « Erreur lors de l'enregistrement du classeur : » &Err.Description, vbCritical
Quitter le sous-marin
Fin si
En cas d'erreur, GoTo 0
' Créer un nouveau classeur
Définir newWb =Workbooks.Add
' Enregistrez le nouveau classeur avec le même chemin de fichier mais une date différente
dt =dt + 7 'Date de la semaine prochaine
strFileName =Format(dt, "AAAA-MM-JJ") &"Revenu.xlsx"
strFilePath ="C:\Your\File\Path\" &strFileName ' <--- CHANGEZ CECI PAR VOTRE CHEMIN SOUHAITÉ
En cas d'erreur, reprendre ensuite
newWb.SaveAs Filename :=strFilePath, FileFormat :=xlOpenXMLWorkbook
Si Err.Number <> 0 Alors
MsgBox « Erreur lors de la création d'un nouveau classeur : » &Err.Description, vbCritical
newWb.Close SaveChanges:=False 'Fermer sans enregistrer si une erreur se produit
Quitter le sous-marin
Fin si
En cas d'erreur, GoTo 0
'Facultatif :Ajoutez une boîte de message pour confirmer l'achèvement.
MsgBox "Classeur enregistré et nouveau classeur hebdomadaire créé.", vbInformation
Fin du sous-marin
```
Avant de courir :
1. Modifiez `"C:\Votre\Fichier\Chemin\"` : Absolument crucial pour remplacer cet espace réservé par le chemin du dossier réel dans lequel vous souhaitez enregistrer vos fichiers Excel. Des chemins incorrects entraîneront des erreurs. Assurez-vous que le dossier existe.
2. Ouvrez l'éditeur VBA : Dans Excel, appuyez sur Alt + F11 pour ouvrir l'éditeur VBA.
3. Insérer un module : Dans l'éditeur VBA, accédez à Insertion> Module.
4. Collez le code : Collez l'intégralité du code dans le module.
5. Exécutez la macro : Revenez à Excel et exécutez la macro (vous devrez peut-être l'attribuer à un bouton ou l'exécuter à partir de l'onglet Développeur> Macros).
Comment ça marche :
* Enregistre le classeur actuel : Le code enregistre d'abord le classeur actif en utilisant un nom de fichier basé sur la date de début de la semaine en cours (dimanche).
* Crée un nouveau classeur : Il ajoute ensuite un nouveau classeur vierge.
* Nomme et enregistre le nouveau classeur : Le nouveau classeur est enregistré avec un nom de fichier basé sur la date de début de la semaine *prochaine*.
* Gestion des erreurs : Les instructions « On Error Resume Next » et de vérification des erreurs empêchent la macro de planter en cas de problèmes lors de l'enregistrement des fichiers (par exemple, autorisations insuffisantes, fichier existe déjà). Il fournit des messages d'erreur informatifs.
* Format de fichier : `xlOpenXMLWorkbook` garantit la compatibilité avec les versions modernes d'Excel (.xlsx).
N'oubliez pas de sauvegarder régulièrement vos données, car les processus automatisés peuvent parfois rencontrer des problèmes inattendus. Testez minutieusement cette macro sur un exemple de fichier avant de l'utiliser avec des données importantes.
|