Microsoft 365 sauvegarder les données d'un planning sur un nouvel onglet

lathus jean-claude

XLDnaute Nouveau
bonjour
J'ai un planning perpétuel sur 18 mois ou je renseigne mes heures de travail
je voudrais que lorsque je change l'année en A1 que ca enregistre mon planning sur un nouvel onglet et qui vide la nouvel année
est il possible de le faire ci joint mon planning
merci d'avance de vos réponse
 

Pièces jointes

  • planning nathalie & jean-claude.xlsm
    91.7 KB · Affichages: 17
Solution
Voyez le fichier joint et la macro dans ThisWorkbook :
VB:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Right(Sh.Name, 4) Like "####" Or Target.Address <> "$A$1" Then Exit Sub
Dim memAn, nf$
memAn = Sh.[A1] 'mémorise l'année
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
Application.Undo 'annule l'entrée
If Not Sh.[A1] Like "####" Then GoTo 1
Target.Select
nf = Sh.Name & " " & Sh.[A1] 'nom pour l'archive
If MsgBox("Voulez-vous créer l'archive '" & nf & "' ?", vbYesNo) = vbNo Then GoTo 1
'---crée l'archive---
Application.DisplayAlerts = False
On Error Resume Next 'si la feuille n'a pas été créée
Sheets(nf).Delete
Sheets.Add Before:=Sh 'nouvelle feuille...

job75

XLDnaute Barbatruc
Voyez le fichier joint et la macro dans ThisWorkbook :
VB:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Right(Sh.Name, 4) Like "####" Or Target.Address <> "$A$1" Then Exit Sub
Dim memAn, nf$
memAn = Sh.[A1] 'mémorise l'année
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
Application.Undo 'annule l'entrée
If Not Sh.[A1] Like "####" Then GoTo 1
Target.Select
nf = Sh.Name & " " & Sh.[A1] 'nom pour l'archive
If MsgBox("Voulez-vous créer l'archive '" & nf & "' ?", vbYesNo) = vbNo Then GoTo 1
'---crée l'archive---
Application.DisplayAlerts = False
On Error Resume Next 'si la feuille n'a pas été créée
Sheets(nf).Delete
Sheets.Add Before:=Sh 'nouvelle feuille
ActiveSheet.Name = nf 'nomme la feuille
Sh.Cells.Copy ActiveSheet.[A1] 'copie tout
Sh.[A1].Copy ActiveSheet.[A1] 'allège la mémoire
ActiveSheet.UsedRange = Sh.UsedRange.Value 'supprime les formules
'---réinitialise---
With Sh.[8:38].SpecialCells(xlCellTypeConstants)
    .Value = ""
    .Interior.ColorIndex = xlNone
End With
'---restitue l'année---
1 Sh.[A1] = memAn
Sh.Activate
Application.EnableEvents = True 'réactive les évènements
End Sub
Elle se déclenche quand on modifie la cellule A1 des feuilles non archivées.

Testez en entrant 2022 dans la feuille Jean-Claude et 2023 dans la feuille Nathalie.

PS : j'ai supprimé les SpinButtons qui sont guère utiles et peu commodes.

Bonne nuit.
 

Pièces jointes

  • planning nathalie jean-claude(1).xlsm
    94.8 KB · Affichages: 20

Discussions similaires

Réponses
0
Affichages
365

Statistiques des forums

Discussions
312 185
Messages
2 086 012
Membres
103 093
dernier inscrit
Molinari