Salut Diesel,
...fichier .ODS converti en Excel XLSM !!!
Un double-clic sur la feuille 'Palettes' déclenche le calcul de ta MsgBox en fonction du n° de zone correspondant à la ligne double-cliquée.
J'ai légèrement modifié ton tableau de paramètres...
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'
Dim sWk As Worksheet, iRow1%, iRow2%, iRow3, iDec%, iZone%, iPal%
'
Cancel = True
On Error Resume Next
Set sWk = Worksheets("Param")
'
iZone = Range("K" & Target.Row).Value
iRow1 = Columns(11).Find(what:=iZone, lookat:=xlWhole, LookIn:=xlValues, searchdirection:=xlNext).Row
iRow2 = Columns(11).Find(what:=iZone, lookat:=xlWhole, LookIn:=xlValues, searchdirection:=xlPrevious).Row
iRow3 = Range("N" & iRow1 & ":N" & iRow2).Find(what:="à décaler", lookat:=xlWhole, LookIn:=xlValues, searchdirection:=xlPrevious).Row
iPal = WorksheetFunction.Sum(Range("N" & iRow1 & ":N" & IIf(iRow3 = 0, iRow2, iRow3 - 1)))
'
MsgBox "Zone " & iZone & Chr(10) & Chr(10) & "Nombre de palettes = " & iPal & Chr(10) & _
"Palettes à décaler = " & IIf(iRow3 = 0, "NON", "OUI") & Chr(10) & Chr(10) & _
"Moyen de transport = " & IIf(iPal <= sWk.[B3], sWk.[C3], IIf(iPal >= sWk.[B5], sWk.[C5], sWk.[C4]))
On Error GoTo 0
'
End Sub
A+