Ok je vois que cela fonctionne.
Voici donc le code Calcul à tester comme je vous avais écrit avant.
Sub calcul()
Dim sf As Worksheet, st As Worksheet
Set sf = ThisWorkbook.Worksheets("Fiches")
Set st = ThisWorkbook.Worksheets("Tableauanalyse")
On Error Resume Next
'Positions
Dim plage As Range
Dim i As Byte, j As Byte
j = 6
For i = 6 To 19
Select Case i
Case Is = 10: i = 12
Case Is = 13: i = 14
End Select
Set plage = Union(Range("P" & j), Range("P" & j + 14), Range("P" & j + 28), Range("P" & j + 42), Range("P" & j + 56), Range("P" & j + 70), Range("P" & j + 84), Range("P" & j + 98), Range("P" & j + 102), Range("P" & j + 126))
sf.Range("Q" & i) = Round(Application.Sum(plage) / Application.WorksheetFunction.Count(plage))
j = j + 1
Next i
j = 6
For i = 26 To 34 Step 4
Set plage = Union(Range("AB" & j), Range("AB" & j + 14), Range("AB" & j + 28), Range("AB" & j + 42), Range("AB" & j + 56), Range("AB" & j + 70), Range("AB" & j + 84), Range("AB" & j + 98), Range("AB" & j + 102), Range("AB" & j + 126))
sf.Range("Q" & i) = Round(Application.Sum(plage) / Application.WorksheetFunction.Count(plage))
j = j + 1
Next i
'notes
Dim X As Byte
j = 6
For i = 6 To 19
Select Case i
Case Is = 10: i = 12
Case Is = 13: i = 14
End Select
Select Case j
Case Is = 6, 8, 12: X = 5 * 10
Case Is = 7, 14, 15: X = 1
Case Is = 9, 16: X = 6 * 10
Case Is = 10: X = 2 * 10
Case Is = 11, 13: X = 4 * 10
End Select
Set plage = Union(Range("N" & j), Range("N" & j + 14), Range("N" & j + 28), Range("N" & j + 42), Range("N" & j + 56), Range("N" & j + 70), Range("N" & j + 84), Range("N" & j + 98), Range("N" & j + 102), Range("N" & j + 126))
sf.Range("R" & i) = Round(Application.Sum(plage) / Application.WorksheetFunction.Count(plage)) / X
j = j + 1
Next i
j = 6
For i = 26 To 34 Step 4
Set plage = Union(Range("AB" & j), Range("AB" & j + 14), Range("AB" & j + 28), Range("AB" & j + 42), Range("AB" & j + 56), Range("AB" & j + 70), Range("AB" & j + 84), Range("AB" & j + 98), Range("AB" & j + 102), Range("AB" & j + 126))
sf.Range("R" & i) = Round(Application.Sum(plage) / Application.WorksheetFunction.Count(plage))
j = j + 1
Next i
With sf
.Range("P39") = Application.Sum(.Range("R6:R34")) / 14
'Dénomination et arômes en bouche
.Range("K2") = Range("B1")
.Range("K3") = Range("B2")
.Range("K4") = Range("B3")
.Range("O3") = Range("B4")
.Range("H22") = Range("B17") & " " & Range("B31") & " " & Range("B45") & " " & Range("B59") & Range("B73") & " " & Range("B87") & " " & Range("B101") & " " & Range("B115") & Range("B129") & " " & Range("B143")
End With
End Sub
Le On error resume next est laissé mais je ne vois pas l'utilité
Autre point : J'ai vu que vous aviez dupliquer le mot Application dans les formules. Pourquoi ?