Sub Macro1()
Dim o As Object 'définit la variable o (Onglet)
Dim dl As Integer 'définit la variable dl (Dernière Ligne)
Dim col As Integer 'définit la variable col (Colonne)
Dim li As Integer 'définit la variable li (LIgne)
Dim tm As Double 'définit la variable tm (Temps Maximum)
Dim cm As Integer 'définit la variable cm (Colonne du temps Maximum)
Set o = Sheets("Pen_dec") 'définit l'onglet o
dl = o.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne édité dl de la colonne 1 (=A) de l'onglet o
For li = 3 To dl 'boucle 1 : sur toutes les lignes li de 3 à dl
For col = 16 To 3 Step -1 'boucle 2 : inversée sur toutes les colonnes col de P à C
'condition : si la valeur de la cellule est inférieure à la valeur de la cellule à sa gauche
If Cells(li, col).Value < Cells(li, col - 1).Value Then
tm = Application.WorksheetFunction.Max(Rows(li)) 'définit la temps le plus élevée de la ligne
cm = Application.WorksheetFunction.Match(tm, Rows(li)) 'definit la colonne du temps le plus élevé de la ligne
o.Cells(li, cm).Value = o.Cells(li, cm).Value + o.Range("Q1").Value 'ajoute la pénalité en Q1 au temps le plus élevé
End If 'fin de la condition
Next col 'prochaine colonne de la boucle 2
Next li 'prochaine ligne de la boucle 1
End Sub