Sub Worksheet_Activate()
Dim Début$, Fin$, F, GoDeb%, GoFin%
Sheets("Rapport").Range("B2:AV32").ClearContents ' on efface le tableau existant
Application.ScreenUpdating = False
Début = Sheets("Select").Range("B2") ' feuille de début
Fin = Sheets("Select").Range("B3") ' feuille de fin
For Each F In Worksheets ' on supprime les "-" car texte donc génère des erreurs
Sheets(F.Name).Range("B2:AV32").Replace What:="-", Replacement:="", LookAt:=xlPart, SearchOrder:=xlByRows
Next F
GoDeb = 0: GoFin = 1
For Each F In Worksheets
If F.Name = Début Then GoDeb = 1 ' si feuille debut atteinte
If GoDeb + GoFin = 2 Then ' si les deux flags valent 1 on additionne
Formule = Formule & "+" & F.Name & "!B2" ' on construit la formule
End If
If F.Name = Fin Then GoFin = 0 ' si feuille fin atteinte
Next F
[B2:AV32].FormulaLocal = "=" & Mid(Formule, 2) ' on colle la formule
[F2:F32].FormulaLocal = "=D2/C2" ' on colle la formule calcul %
[B2:AV32] = [B2:AV32].Value ' on remplace par les valeurs
End Sub