Bonjour, voici un code qui fera l'affaire:
Sub test()
Dim ligDep As Integer, ligFin As Integer, plafond As Integer
Dim pas As Double, valDep As Double
ligDep = 10
ligFin = 28
plafond = 100
pas = 0.01
valDep = 0.01
Application.ScreenUpdating = False
For lig = ligDep To ligFin
Range("C" & lig) = valDep
While (Range("H" & lig) <> "Oui" Or Range("J" & lig) <> "Oui" Or Range("L" & lig) <> "Oui") And Range("C" & lig) <= plafond
Range("C" & lig) = Range("C" & lig) + pas
Wend
Next lig
End Sub
Il fait varier le contenu de la colonne C pour chaque ligne jusqu'à ce que les colonnes H, J et L contiennent "Oui", on obtient donc la plus petite valeur nécessaire.
Avec comme contraintes: une valeur minimale de 0.01, une précision de 0.01, une valeur maxi de 100 (pour ne pas tourner à l'infini).