Bonjour,
Je pensais que tout avait été fait pour que tu adaptes par toi-même.
Ce n'est pas le cas.
Donc...
Le code :
Option Explicit
'Macro à insérer dans le module de la feuille Training Plan, ou se trouve la cellule G3
Private Sub Worksheet_Change(ByVal Target As Range)
'A ADAPTER : Const LIGNES_
' doit commencer par un #
' suivent les numéros des 1ères lignes de chaque groupe à masquer
' avec, entre chaque, le symbole #
Const LIGNES_TRAINING As String = "#10#13#16#19#22#25#28#31#34"
Const LIGNES_ANALYSIS As String = "#22#26#30#34#38#42#46#50#54"
'A ADAPTER : Const TOTAL_
' Indiquer les numéros de lignes départ et fin.
Const TOTAL_TRAINING As String = "7:35"
Const TOTAL_ANALYSIS As String = "18:57"
'A ADAPTER : l'adresse de la cellule ou est inscrit le nombre de semaine. Dans l'exemple $G$3
If Target.Address = "$G$3" Then
If IsNumeric(Target.Value) Then
Masque_Affiche Sheets("Training Plan"), Target, LIGNES_TRAINING, TOTAL_TRAINING
Masque_Affiche Sheets("Analysis"), Target, LIGNES_ANALYSIS, TOTAL_ANALYSIS
End If
End If
End Sub
Private Sub Masque_Affiche(Feuil As Worksheet, Targ As Range, Lign As String, Tot As String)
Dim DL As String, Value As Integer
DL = ":" & Split(Tot, ":")(1)
Value = Targ.Value
With Feuil
.Rows(Tot).Hidden = False
If Value <= UBound(Split(Lign, "#")) And Value > 0 Then .Rows(Split(Lign, "#")(Value) & DL).Hidden = True
End With
End Sub
Le classeur exemple :