Je ne te suis pas dans ton évènement (ingérable, bien pour faire chauffer la machine, le ventilo se démenait et je n'ai pourtant pas attendu très longtemps avant de l'éliminer...).
Mais je te propose une réorganisation :
Sub Entrée()
Dim Jr$, JM$, Mt%, EHM(2)
Jr = Replace(Application.Caller, "btn", "")
If Jr Like "SA*" Then
Mt = Val(Replace(Jr, "SA", "")): Jr = "C"
If Mt = 3 Then JM = "O5" Else JM = IIf(Mt = 5, "O6", "O7")
Else
Mt = Val(Replace(Jr, "DI", "")): Jr = "H"
If Mt = 3 Then JM = "P5" Else JM = "P6"
End If
With ActiveSheet
With .Range(Jr & 65536).End(xlUp)
EHM(0) = .Value + 1: EHM(1) = Time: EHM(2) = Mt
.Offset(1).Resize(, 3).Value = EHM
End With
.Range(JM) = .Range(JM) + 1
End With
End Sub
Procédure qui remplace toutes les précédentes...
Repose sur un renommage des boutons en : btnSA3, btnSA5, btnSA10, btnDI3, btnDI10 ; l'utilisation des formats de cellules en : C2, H2, O3, P3, O5:O7 et P5:P6 ; modification des formules en O3:P4 ; formule en P12. Une zone Sortie est à aménager...
Tu peux encore éventuellement créer un recoupement des montants par MFC...
Cordialement.