Bonjour,
voici un petit exemple à copier dans ThisWorkbook du classeur visé:
Const PrefixeNom As String = "Reunion_Heb_Regularite_semaine_"
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'Pour empêcher l'évènement Beforesave de se reproduire
Application.EnableEvents = False
'Pour ne pas qu'excel execute l'évènement, l'enregistrement se fait manuellement
Cancel = True
'Variable qui contient le nouveau nom du classeur
Dim NomClasseur As String
'Détermine le nom du fichier selon la semaine en cours
NomClasseur = PrefixeNom & num_sem(Date) & "_" & Year(Date) & ".xls"
'Si le nouveau nom égale le nom du classeur en cours
If NomClasseur = ActiveWorkbook.Name Then
'Enregistre le classeur
ActiveWorkbook.Save
Else
'Enregistre sous le nouveau nom
ActiveWorkbook.SaveAs NomClasseur
End If
'Réétablie les évènements
Application.EnableEvents = True
End Sub
pour le no de la semaine, j'ai trouvé cette fonction sur le net, à coller dans un module:
Public Function num_sem(D As Date) As Long
'Auteur: Laurent Longre. X-Cell
'La fonction suivante renvoie le numéro de semaine conforme à la norme ISO, _
utilisée dans les pays européens (la première semaine d'un mois étant définie _
comme la première semaine comportant au moins quatre jours dans le mois).
D = Int(D)
num_sem = DateSerial(Year(D + (8 - Weekday(D)) Mod 7 - 3), 1, 1)
num_sem = ((D - num_sem - 3 + (Weekday(num_sem) + 1) Mod 7)) \ 7 + 1
End Function
j'ai ajouté l'année dans le nom du fichier. C'est un début de solution qui peut vous aider. Pour ton problème avec word, faudrait plus de détail.