Réutiliser planning Excel 52 semaines
Excel : Récapitulatif automatique d'un planning sur 52 semaines
+ planning pour les années suivantes
🎯 Dans ce tutoriel, nous allons continuer notre série sur la gestion de planning.
➡️ Si vous vous avez suivi le précédent tutoriel intitulé "Créer un planning de suivi des tâches sur 52 semaines avec un bouton toupie sur Excel", vous allez adorer la suite.
🆕 En effet, aujourd'hui, je vous montre comment ajouter une fontionnalité importante avec la création d'un récapitulatif automatique de planning sur 52 semaines.
📊 Ainsi, cela vous permettra de visualiser rapidement toutes vos tâches enregistrées sans avoir besoin d'utiliser le bouton toupie pour rechercher une ou des tâches spécifiques.
🔍 De plus, avec ce récapitulatif, vous allez pouvoir analyser les tâches de votre planning, comme identifier les périodes de fortes activités, mais aussi, optimiser la gestion des tâches récurrentes et éviter les goulots d'étranglement dans votre flux de travail.
📅 Mais ce n'est pas tout, dans la dernière partie de la vidéo, je vous explique comment préparer votre planning pour démarrer une nouvelle année sur de bonnes bases. Vous apprendrez à duppliquer votre planning afin de conserver les données de l'année précédente, à effacer toutes les données en une seule fois pour mettre à jour les dates et repartir au 1er janvier 2026.
Voir la vidéo pour suivre les différentes étapes :
📌↪️→ Code VBA à utiliser :
1ère macro pour créer les récapitulatif :
Sub RécapitulatifSemaines()
On Error GoTo GestionErreur
Dim i As Integer
Dim dernièreLigne As Long
Dim destination As Range
Dim startDate As Date
Dim endDate As Date
Dim plageHeures As Range
Dim planningSheet As Worksheet
Dim semaineSheet As Worksheet
' Initialiser la date de début de la première semaine
startDate = DateValue("01/01/2025")
' Créer ou sélectionner la feuille Récapitulatif
On Error Resume Next
Set recapSheet = ThisWorkbook.Sheets("Récapitulatif")
If recapSheet Is Nothing Then
Set recapSheet = ThisWorkbook.Sheets.Add
recapSheet.Name = "Récapitulatif"
Else
recapSheet.Cells.Clear ' Effacer les données existantes
End If
On Error GoTo 0
' Définir les heures
Set plageHeures = ThisWorkbook.Sheets("Planning").Range("A4:A24")
Set planningSheet = ThisWorkbook.Sheets("Planning")
' Copier les jours dans les cellules B1:H1
recapSheet.Range("B1").Value = "Mercredi"
recapSheet.Range("C1").Value = "Jeudi"
recapSheet.Range("D1").Value = "Vendredi"
recapSheet.Range("E1").Value = "Samedi"
recapSheet.Range("F1").Value = "Dimanche"
recapSheet.Range("G1").Value = "Lundi"
recapSheet.Range("H1").Value = "Mardi"
With recapSheet.Range("B1:H1")
.Font.Bold = True
.Font.Size = 12
End With
' Définir la hauteur de la ligne 1 à 32
recapSheet.Rows("1:1").RowHeight = 32
dernièreLigne = 2 ' Initialiser la dernière ligne à 2 pour les données
' Enregistrer les données actuelles
Dim currentWeek As Integer
currentWeek = planningSheet.Range("Z1").Value
Set semaineSheet = ThisWorkbook.Sheets("Semaine " & currentWeek)
semaineSheet.Range("A1:G21").Value = planningSheet.Range("B4:H24").Value
' Copier les données de chaque semaine sur la feuille Récapitulatif
For i = 1 To planningSheet.Range("Z1").Value
Set semaineSource = ThisWorkbook.Sheets("Semaine " & i).Range("A1:H24") ' Inclure les heures
' Copier les heures pour chaque nouvelle semaine
recapSheet.Range("A" & dernièreLigne & ":A" & dernièreLigne + plageHeures.Rows.Count - 1).Value = plageHeures.Value
' Copier les données de la semaine
Set destination = recapSheet.Range("B" & dernièreLigne)
destination.Resize(semaineSource.Rows.Count, semaineSource.Columns.Count).Value = semaineSource.Value
' Calculer dates de début et de fin de la semaine
endDate = startDate + 6
' Afficher le numéro de semaine et les dates dans la même cellule
recapSheet.Range("I" & dernièreLigne).Value = "Semaine " & i & vbCrLf & Format(startDate, "dd/mm") & " au " & Format(endDate, "dd/mm")
' Centrer et aligner le texte au centre, et le mettre en caractères gras
With recapSheet.Range("I" & dernièreLigne)
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Font.Bold = True
End With
' Passer à la semaine suivante
startDate = endDate + 1
dernièreLigne = dernièreLigne + plageHeures.Rows.Count + 1 ' Passer à la ligne suivante pour la semaine suivante
Next i
' Appliquer la fonction "Renvoyer à la ligne automatiquement" à toutes les cellules utilisées
With recapSheet.UsedRange
.WrapText = True
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
' Mettre la colonne A au format heure
recapSheet.Columns("A").NumberFormat = "h:mm"
Exit Sub
GestionErreur:
MsgBox "Une erreur est survenue : " & Err.Description
End Sub
2ème macro pour effacer les informations de l'année précédente
Sub EffacerToutesLesTâches()
Dim i As Integer
Dim recapSheet As Worksheet
For i = 1 To 52
' Efface le contenu des cellules de A1 à G21 pour chaque feuille de semaine
ThisWorkbook.Sheets("Semaine " & i).Range("A1:G21").ClearContents
' Efface également le contenu de la feuille Planning
ThisWorkbook.Sheets("Planning").Range("B4:H24").ClearContents
Next i
' Effacer les données de l'onglet Récapitulatif
Set recapSheet = ThisWorkbook.Sheets("Récapitulatif")
recapSheet.Cells.ClearContents
MsgBox "Les données de l'année précédente ont été effacées."
End Sub
1er tutoriel pour Créer votre planning avec bouton toupie
2ème tutoriel pour Créer votre planning de suivi des tâches sur 52 semaines