Private Sub Workbook_Open()
Workbook_SheetChange Sheets("Objectif"), Sheets("Objectif").[A1]
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Source As Range)
'---mise à jour de la feuille du mois---
If Sh.Name = "Objectif" Then
Dim i As Byte, w As Worksheet
Application.EnableEvents = False 'désactive les évènements
Application.CopyObjectsWithCells = True 'pour que les objets soient copiés
For i = 1 To 12
Set w = Sheets(Format("1/" & i, "mmmm"))
If i >= Month(Date) Then w.Cells.Delete 'RAZ
If i = Month(Date) Then
Sh.Cells.Copy w.[A1]
w.[D11,E15].NumberFormat = "@" 'format Texte
w.UsedRange = w.UsedRange.Value 'supprime les formules
End If
Next
Sh.[A1].Copy Sh.[A1] 'vide le presse-papiers
Application.EnableEvents = True 'réactive les évènements
End If
'---active la feuille sélectionnée---
If Not Intersect(Source, Sh.[J6]) Is Nothing Then _
On Error Resume Next: Sheets(CStr(Sh.[J6])).Activate
End Sub